[MLAS] Add an NHWC implementation of convolution to avoid transposes (#26834)
* Modification to the CPU EP to specify channels_last when data format
is NWHC
* Added a FusedNhwcConv kernel
* Implementation of the kernel in mlas
* Added compiler guards so it is inly used with KleidiAi (for now, can
be removed if needed)
* Added unittests
### Description
Currently OnnxRT supports NCHW as a default datalayout. For
optimisations and kernels that operate better in NHWC layout, or where
the datalayout is NHWC in the first place Transposes are added around
the layers. This patch seeks to eliminate them in cases of convolutions
where it would cause a performance decrease.
### Motivation and Context
KleidiAi specific implementation of this feature. Only supports
convolutions, DepthWise to follow. Currently a little strict with the
filters as a result.
---------
Signed-off-by: Orlaith Monahan <orlaith.monahan@arm.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>