Reduce the number of thin wrapper classes for metaprogramming; where possible do the calculation inline rather than bounding to an _impl namespace. Also updated the storage to static assert when using the storage metafunctions on a class that does not have introspection enabled.