[WIP] io support for data container

This PR containes the ip support for the data container items

In more detail:
- DataContainers are saved in a hdf5 group node which contains a Table for the key/data values and an EArray for the masking out the invalid keywords.
- The list of the CUBA keywords is now provided in yaml format so that it is easy to be edited by users and at the same time can be easily loaded into scripts for code generation.
- A code generator script is provided to generate the `CUBA` enum class used in `DataContainer` and the `Data` table description used in the new DataContainerTable class.

``Pending``:
- [ ] Finish the DataContainerTable
- [ ] Update the setup.py and include any new requirements
- [ ] Provide a benchmarking script for the DataContainerTable.
- [ ] Cleanup

``Notes``:
- Missing CUBA keywords were added, but the CUBA keyword correspondence to integers has changed.