Be more precise in compiler-libs dependencies.
Be more precise with optcomp 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.