Slim down exception compatibility modules

handleIO and throwIOIO in the cabal-install compat module were
completely unused, so they're just binned.

IOException, SomeException and onException are now just used from
Control.Exception, since these days it's available on all supported
build configurations.

There are some more functions which can be removed, but these are the
easiest and least invasive.
Remove more exception compatibility code

This one removes Cabal's throwIOIO in favour of
Control.Exception.throwIO.

Note that throwIO is more polymorphic than throwIOIO, but in all current
use cases the same type is inferred anyway.
Merge pull request #1377 from benmachine/updated-nocompat

Removing some redundant exception compatibility code