Add memory format support to `resize_as_` operator (#27979)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/27979
Adds memory_format keyword argument (positional for cpp).
'Preserve' behavior now follows next rules:
1) If tensor is non-overlapping and dense - output tensor will have the same strides as input tensor.
2) If not (1) and tensor is stored in the channels last format, output tensor going to have channels last format.
3) Output tensor is going to be contiguous in all other cases.
---
Dense tensor is the tensor that store values in a contiguous block of memory.
Non-overlapping tensor is the tensor in which elements occupy individual non-repetitive memory.
Test Plan: Imported from OSS
Differential Revision: D17980311
Pulled By: VitalyFedyunin
fbshipit-source-id: 12d013521091fcc9c045833577f6dc78d7b1e68f