Add basic support for FP16 in SageMaker model parallelism
# What does this PR do?

**Note:** This is not full support yet as SageMaker Model Parallelism does not support gradient clipping, so a user has to change the default of `max_grad_norm` to 0 if they want to use it.

Otherwise, this adds support for mixed precision training in SageMaker Model Parallelism mode. The script has been tested on `run_glue.py` without error (as long as the caveat above is respected).
A defensive check is added so that the user gets an obvious error message if they don't change the default value of `max_grad_norm`.