Disable tests in bootstrap.sh

Otherwise pinning assemblage can fail (e.g. missing sexp).
Assemblage.t is now Assemblage.project. Move tools to Assemblage.Cmd.
Adds assemblage tool.

Now equivalent to configure.ml but without the inversion of
control. Used by the boostrap procedure. Assemblage's assemble.ml
is living a dual life, can still be used by configure.ml.
Add .merlin file, until assemblage is maybe able to bootstrap one.
Move commands (formerly tools) to their own module.

First step towards exposing them as cmdliner terms.
Rewrite bootstrap procedure.

More convenient if a new compilation unit is added and no longer uses
ocamlbuild (since it will be forked off the compiler). First
build/rebuild is now 0.9s/0.9s vs 4.2s/0.6s with ocamlbuild on my
machine.
Assemblage is now a tool with subcommands.

We also begin to invert the inversion of control. The Assemblage.add
function and the project list are now gone, you need to call
Assemblage.assemble on your project, which invokes the cmdliner
machinery. Also Assemblage.create becomes Assemblage.project.

The `configure.ml` and `describe.ml` tools are gone.
Be more precise with compiler-libs dependencies.

Specifically As_OCaml needs only compiler-tools.bytecomp. Only the
assemblage binary (tool.ml), needs compiler-tools.toplevel. Thanks to
the inversion of the inversion of control, this allows us to simply
compile assemble.ml files against the assemblage library to native
code.
Make Assemblage's assemble.ml compile itself to native code.

For the fun and as a sanity check.
Assemblage's assemble.ml distinguish examples from tests.

Also adds a test directory.
Better startup procedure.

It is now possible to invoke the assemblage command line tool even if
there is no assemble.ml file in the cwd or access its manual even if
the parsing of assemble.ml fails or if the assemble.ml file doesn't
execute Assemblage.assemble.

We gathered all the command runtime environment handling in the As_env
module and added a -f option to specify the assemble.ml file to use.
As a result of this As_build_env.t becomes really only about the build
environment (it would before mix in things about the assemblage
startup procedure, -I, auto-load).

The command line help is adapted depending on whether we are using
assemblage the tool or directly executing an assemble.ml file
(e.g. the options about auto-load, -I etc. won't appear in the docs in
the latter case).
Merge pull request #67 from dbuenzli/assemblage-as-a-tool

Assemblage as a tool