* Add instane from `MonadFail`---none of the transformers implement this
functionality so the implementation just lifts things.
* Added `WithBase`
* Remove 'RunStateM'
Simplifies the library without loosing functionality.
It seems that we can get the same behavior by just using 'get' and 'set'.
* Add functions that use a monad morphism to "derive" implementations
of most of the funcitons in the library.