Add back the ConstraintSatisfied IsBaseMonad instance

Otherwise it won't actually work.
Error in documentation (MonadBase should be MonadTower)
Add Transformers module

This allows targeting of a specific Monad transformer.
Add Monad{Tower,Level} instances for transformers

All monad transformers from the transformers library now have instances
for use with MonadTower and MonadLevel with the exception of ErrorT in
favour of the new ExceptT transformer instead (hence the requirement for
transformers >= 0.4).
Update and complete State manipulation

Still needs documentation, but instances and functions are done.