Adjust existing types to use roles exclusively
Add ImmutableHash, adjust TypedHash
fix ImmutableHash coercions, add tests
Merge branch 'lowu2'

* lowu2:
  fix ImmutableHash coercions, add tests
  Add ImmutableHash, adjust TypedHash
  Adjust existing types to use roles exclusively