Record import paths in ibc

This way, an ibc contains everything needed to compile to an executable
(including pointers to the other ibcs)
Merge branch 'master' of github.com:idris-lang/Idris-dev
Use strings for code generators

Makes it easy to add third party CGs without requiring them in the repo
Added idris-c executable

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.
Fix implicits bug

If the ordering we guess is not the same as the ordering that is
eventually decided, everything goes to pot... so this patch no longer
makes that flawed assumption!
Invoke external code generator

If --codegen specifies somethng which isn't one of the built-in code
generators, invoke an external CG. For --codegen foo, this should be a
command which takes the following form:

idris-foo <ibc-file-list> [-o <output-file>]

idris-foo should read the ibc files, and generate an output file called
<output-file>. Naturally it's easiest to use Idris as a library to do
this. See the codegen/ directory in the Idris-dev repository for
examples.