catalyst_conduit: macroize the C++ wrapper API
This makes the actual source file much smaller and easier to edit.
Changes:
- new DataType class for easier access to this information
- template refactoring of
to_X
methods to use template-based casting - macroizing the repetitive type-based overloads and methods
Cc: @tom.osika