internal api preserving refactor to Allow older transformers

Hey @bscarlet , I'd like your thoughts on the following approach to allowing transformers 0.3 in the version bound range. 

1) it requires internally using a newtype
 `newtype ExceptableT e m a = ExceptableT { getExceptT :: Ext.ExceptT  e m a }`
to avoid any orphan warnings or the like

2) it makes zero changes the public api. None, so no current users will be impacted

3) as i've mentioned previously, this is motivated by the fact that GHC 7.8 comes bundled with transformers 0.3, and thus any application that wishes to use ghc 7.8's compiler APIs *must* use transformers 0.3, and I'd like to be able to explore using llvm-general in applications that are already using those APIs.

4) some small whitespace changes snuck into the diff, so you might want to look at this https://github.com/cartazio/llvm-general/compare/bscarlet:llvm-3.4...allow-older-transformers?expand=1&w=1
to see the easier to read diff

5) its a relatively big patch, but i think is probably the simplest solution that allows supporting transformers 0.3 in the dependency range.

happy holidays!
ahhh
```
  deriving (
    Eq,
    Eq1,
    Ord,
    Ord1,
    Functor,
    Foldable,
    Applicative,
    Alternative,
    Monad,
    MonadPlus,
    MonadTrans,
    MonadIO
    )
```
ok