Removing the macro for declaring sub-types of NumericType and
instead using template arguments
Addding a static SINGLETON member to the NumericType base class
instead of the macros for methods for creating singletons for
each numeric type
Removing NullType's inheritance of PrimitiveType
Removing intermediate base class between {Integer,Floating}ArrayImpl
and PrimitiveType and just making a concrete template based
class {Integer,Floating}Array
Cool, this looks good -- thanks for making the Cython code compile again! I wasn't aware of the trailing return type syntax in C++11, so that's super helpful.