Remove MonadIO

We are going to transition this library to be more fundamental, and so
are removing the transformers dependency completely.  Which
unfortunately also means removing the convenient MonadIO usage.
No more dependence on `error`

Which means we now include syncIO ourselves
Haskell2010 should still work

Haskell98 needs a small tweak (change import from System.IO.Error to IO)
but otherwish should also work.

This package is much more needed for GHC, but still very useful on
general Haskell.  So it should be able to compile there.
Don't need those dependencies
Merge branch 'no-transformers'

* no-transformers:
  Don't need those dependencies
  Haskell2010 should still work
  No more dependence on `error`
  Remove MonadIO

Closes #2
Closes #3