Migrating to usage of type clesses from exceptions

Instead of using MonadException this package now uses MonadThrow,
MonadCatch and MonadMask from exceptions package
(http://hackage.haskell.org/package/exceptions).

Version bumped to 2.0.0.0.