utilities for code generation with std::tuple's
std::tuple is NOT standard storage, so keep the new MaterTuple interface but make the storage again be array. The difference now is that every MatTuple class has a class member schema to help with gets and fromIStream, etc