Introduce new API for data marshalling.
Initial implementation of the new data marshalling.
First tests for new data marshalling.
Fix compilation errors from the API changes.
Add new assertions to the unit-test suite.
Don't require two macros to register a test.