I ran stylish-haskell over everything. The import grouping was
inconsistent so I just picked something: Idris.* and IRTS.*, then Util,
then autogenerated files, then modules from other packages.
Introduction of a new module `Idris.Main` that contains the code
required to launch and run an interactive Idris session---compilation,
REPL et cetera. It has been spun out of `Idris.REPL`; common code has
been spun out from both into `Idris.ModeCommon`.
With `Idris.Main` comes a new entry point for Idris and presents
developers with a more unified API for running Idris programs. A side
affect of this approach is that the imports for codegens must be
changed to import `Idris.Main` and not `Idris.REPL`.
Eventually, this should be the only way to invoke code generators (by
invoking "idris-foo Main.ibc" for the code generator for backend foo.
For the moment, this serves as an example 'main' for any new code
generators, and *all* new code generators should be implemented this
way.