Propagate Cast operations to maximize lower precision (float16) computation (#7191)
* Added propagate_cast_ops option and PropagateCastOps transformation.
* Added test cases to propagate Cast operations.
* Expose GraphTransformerConfiguration to python interface and added propagate_cast_ops options.
* Added functionality to propagate Cast operations.
* Added logging.
* Apply cast propagation to the subgraphs.