Rework initializer.cc to eliminate code duplication and add type enforcement.
Address review comments. Add literal operators for MLFloat16 abd BFloat16 and tests.
* Move type agnostic code out of UnpackInitializerData
Refactor the unpack tensor logic to switch on data size
Add test cases
* Remove templatization of more parts
Remove condition from ORT_RETURN_IF[_NOT] macro output as repeating the condition doesn't add much value compared to the explicit error message, and the error message includes the file and line anyway so it's easy enough to find the condition if needed.
Update the few places where the macros were used without an explicit error message to provide an explicit error message.
Saves 12.5KB in a minimal MinSizeRel build with all DNN ops, 16KB in full release build.