[Group+Charon]: Rework to support boost::multiarray
Charon: Move into its own header.
Group: Move generic function into header

This makes explicit template instantiation obsolete.
Charon: more specialisations for base types

Also make the Nyx::TypeSpec member const and use static
assertion to ensure TypeSpec is specialised.
Merge branch 'charon' to master