[NestedTensor]Remove tensor buffer replace with Storage type (#82757)
### Description
In order to enable NestedTensor views NestedTensorImpl no longer stores its data in a at::Tensor buffer_ instead it conforms to the practice of most TensorImpls and uses a Storage class. This change will enable NestedTensor to use the view constructor defined on the base TensorImpl.
### Issue
#82671
### Testing
The existing nested_tensor tests are utilized since this is core functionality and would break these tests if not successful.
### Performance
One change that has potentially large performance impact is that most nested_tensor kernels call `get_buffer` to get the buffer in Tensor form and perform ops on this buffer. Previously this was free since we stored the data as a Tensor but now each kernel must construct a Tensor from the storage. The most performance critical/heavy user of nested tensors is BetterTransformer. I would be curious to see if this change significantly impacts performance for this and other workloads.
Pull Request resolved: https://github.com/pytorch/pytorch/pull/82757
Approved by: https://github.com/albanD, https://github.com/jbschlosser