Typeable cleanup

* Don't materialize unverifiable Typeable instances. Fixes #69.
* Added support for casts to polymorphic case classes.
* Casts from null used to always succeed (what was I thinking?). Now
  they always fail.
* Casts to intersection types now verify all members of the
  intersection.
* Better handling of casts to existentially quantified polymorphic
  types.