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
Simplify logic for setVerbose in REPL
Fix buglet in rendering of Nat patterns in :cs
Fix bracketing problem with \o (again!)
Added inputIdrisListing command to load external files.
Cosmetic tweak in interactive editing
Corrects infinite stream syntax [start ..]. Closes
idris-lang/Idris-dev#706
Induction on nat working
Improvment on readability and usability of induction and eliminators.
Fixed reflection induction tactic
Readded solveAll
Remove superfluous function

maybeToList is merely an instance of toList
Added contributing guidelines.
Recursive constructor disjointness + cleanup