[oneDNN]: Added support for fp16 for oneDNN ops
@cantonios Thanks for reviewing this PR. I have addressed your review comments. Please take a look. Thanks. @penpornk Thanks for approving this PR!  Looks like `feedback/copybara` checks have failed. Can you please share the test failures since I am unable to access it? Thanks.
This PR adds FP16 support for the following ops: convolution, matmul (mkl-matmul, batch-matmul, fused-matmul), maxpool, batchnorm, layernorm and softmax.

This PR also adds FP16 ISA guards in C++ and Python so that oneDNN related fusions in remapper and node-rewrites in layout pass happen only on platforms with AVX-512 support. Further, BF16 ISA guards in C++ are refactored into a common function that accepts `DT_FLOAT`, `DT_BFLOAT16` and `DT_HALF` inputs. It can be easily extended in the future for new types as well (ex. `float8`).