Add `torch.linalg.norm` (#42749)
Summary:
Adds `torch.linalg.norm` function that matches the behavior of `numpy.linalg.norm`.
Additional changes:
* Add support for dimension wrapping in `frobenius_norm` and `nuclear_norm`
* Fix `out` argument behavior for `nuclear_norm`
* Fix issue where `frobenius_norm` allowed duplicates in `dim` argument
* Add `_norm_matrix`
Closes https://github.com/pytorch/pytorch/issues/24802
Pull Request resolved: https://github.com/pytorch/pytorch/pull/42749
Reviewed By: ngimel
Differential Revision: D23336234
Pulled By: mruberry
fbshipit-source-id: f0aba3089a3a0bf856aa9c4215e673ff34228fac