Update numeric promotion
Test type immutability
Pass in typesystem to typing functions instead of context
Add some user-exposed methods to types
Update some tests and some outdated code
Add some domain names and update <-> numpy type conversion