Wrap Idris in an ErrorT

This is the first step in getting error reflection to work. The next is to
centralize the error handlers.
Make "Stale IBC" use the new error system
Update compiler to use new error handling
Use the ErrorT failure functions and attempt to preserve error structure
Merge pull request #539 from david-christiansen/errort

ErrorT