.Errors: use throwIO instead of throw
.Internal: Add newTempName
Add savepoint support

Also, fix import of Control.Exception.  "hiding (mask)" to use the
Compat version undoes the compatibility, since hiding something a
module doesn't define is an error in GHC < 7.6.
Test withSavepoint