Implement shorthand type constructors for users
Add list and tuple's base_type to the templating system
Update the container types
Use only a single numpy dtype type representation
Use shorthand dtype type constructors in typemapper
Move some code from typesystem.__init__
Implement NumPy type inference for reductions
Properly coerce the result of a newly inferred type from module type inferrers
Test reduction type inference
Adapt some more to shorthand types in numpy module type inferer