More typeclasses

Added most of the rest of the type class hierarchy. Including
their rules in the readme. I still have to implement MonadFix.