Add support for compiling libraries with dependencies on foreign code.
Add support for compiling libraries with dependencies on foreign code.

This makes two big changes:
- builds all of the dependencies with `-a` instead of `-c` and with
their own `linkFlags`. `-a` tells the compiler that you're building a
library and it'll cache the linker arguments inside the object file
(which is actually a `.cma` file). This will allow us to build the
user's package by combining all of the dependencies but without needing
to add all of the dependencies' `linkFlags`.
- add a `foreignDependencies` in package.json which allows the library
maker to point to a pre-built object file to be linked at link-time.
That file can be built however you want, and can be writtin in any
language that can build a valid object file that the ocaml compiler is
able to handle.

jordwalke/CommonML,jordwalke/CommonML