Divert calls to MklMatMulOp into BatchMatMulMkl for aarch64
This commit seems to have introduced 4 unit test failures on ARM_CI.
https://github.com/tensorflow/tensorflow/actions/runs/4743110078 Hi @elfringham - These are from `test_invalid_shape` in `tensorflow/python/kernel_tests/math_ops/tensordot_op_test.py` due to inconsistent error messages thrown by `MklMatMul` and `MklBatchMatMul`. The test started failing because this PR re-wires the matmuls - uses `MklBatchMatMul` instead of `MklMatMul`

The 2 error messages mean the same thing, but the one thrown by `MklBatchMatmul` is different from the one expected by the test (the one thrown by `MklMatMul`).
This is the one currently being thrown:
`lhs mismatch rhs shape: 2 vs. 3: [2,2] [3,2]`
This is the expected one:
`"Matrix size-incompatible: In\[0\]: \[2,2\], In\[1\]: \[3,2\]")`

I'll put a PR very soon to standardize the error message between the 2 matmuls.

Sorry for any inconveniences 


We observed that for most transformer models, the MklLMatMulOp node in tensorflow gets called. This operation requires an SGEMM BLAS interface which is not supported by the Arm Compute Library (ACL). Hence, when running with TF_ENABLE_ONEDNN_OPTS=1, the sub-optimal gemm_api kernels are used in oneDNN (instead of the ACL ones). 
Here, we divert calls to MklMatMulOp into BatchMatMulMkl for aarch64 which allows the ACL kernels to be used when running with TF_ENABLE_ONEDNN_OPTS=1 (rather than the gemm_api ones).

This shows the speedups gained with this RP for a range of transformer models using 8 intra threads and a sequence length of 128:
![speedup8threads](https://user-images.githubusercontent.com/115173828/232843136-a258cd08-5388-46a4-8e4f-9b81aa8de57b.png)

And this is with 16 threads and also 128 for sequence length:
![speedup16threads](https://user-images.githubusercontent.com/115173828/232843331-86ceaa15-721d-43c3-a477-35bf58d7696d.png)
