Record and data type support

All the data APIs work with records that are collections of data fields.

For overloaded operators for data types see nz::ae