Resolve GHC 7.6 warnings

This mostly adds type signatures and removes unused imports, but it also raises the lower bound on `base` to the point where `catch` was deprecated. (Thinking on it now, it should probably raise it further to the point where `catch` was removed.) But with these changes I got a warning-free build on GHC 7.6.3.