[caffe2] Support data types in shape hints (#45110)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/45110
A recent change in DSNN quantizes the ad embedding to 8 bits. Ad embeddings are part of the inputs to the DSNN merge net. To correctly pass shape hints of input tensors including quantized ad embeddings, we need to be able to annotate the data types in shape hints.
A bit on the corner cases, if type is omitted or not a valid type, e.g., white spaces, instead of throwing an exception, I decided to return the default type, float.
Test Plan:
```
buck test caffe2/caffe2/fb/opt:shape_info_utils_test
```
Reviewed By: yinghai
Differential Revision: D23834091
fbshipit-source-id: 5e072144a7a7ff4b5126b618062dfc4041851dd3