Allow functions to be declared as error handlers
Fix comment syntax for highlighting
Add ErrorHandler Binary instance
Proper checking for language extension
Add a Cabal library

Moves Core to Idris.Core

The library allows using the Idris' backend from other Haskell code.
For example, we could use Idris as a general TT compiler with multiple
backends:

    run :: Idris ()
    run = do
      let ddir = "libs" -- TODO: Use Idris.Util
      addImportDir $ ddir </> "prelude"
      addImportDir $ ddir </> "base"
      elabPrims
      _ <- loadModule stdout "Builtins"
      _ <- loadModule stdout "Prelude"
      pterm <- fmap (flip delab program) getIState
      elabDecls toplevel [makeDecl pterm]
      compile ViaNode "wow.js" runProgram

Everything but Main, Util, Pkg and Paths_idris is currently exported.
Merge branch 'master' into cabal-library

Conflicts:
	idris.cabal
Move externally useful Util.System functions to IRTS.System

Functions moved:

* getTargetDir
* getCC
* getLibFlags
* getIdrisLibDir
* getIncFlags
* getMvn
* getExecutablePom
Add syntax for Agda-style reasoning over preorders
Add a representation of isomorphisms and some useful base isos
Mention preorder reasoning in CHANGELOG
Add test for preorder reasoning syntax
getSpecClause may return multiple clauses later
List modules in dependency order
Add Syntax namespace to cabal file
Fix stupid typo
on error, report the column, as well as the line number in the ideslave mode.

this was suggested in #312 and I think it is a good idea
Careful when unifying explicit arguments

Need to add to the "don't unify" list before applying, not after,
so that thigns which are unified by return type don't get filled
in prematurely.
Merge branch 'master' of github.com:idris-lang/Idris-dev
Merge remote-tracking branch 'origin/error-reflection' into error-reflection
Allow querying the registered error handlers