Draft: Adding cross compatability between onnx and lwtnn as a library for NNs

This will enable parameter files to store the net as an ONNX bytestream, or as an LWTNN json file.

Still TODO;

  • Clear up the TODOs listed in the IS_FastCaloSimEvent dir. Mostly they are suggesting smart pointers.
  • Clean up the class names. Mine are idiosyncratic.
  • Check it runs on ONNX files (irrespective of the fact that we haven't quite nailed the conversion to ONNX yet).
  • Check that the ONNX session isn't copying the byte stream.
  • Check building param files still works fine.
  • Run clang-tidy.

Merge request reports