Makefile: make all calls to ocamlfind indirect.

Fixes #89. Drastically improves build peformance in some cases since
we call ocamlfind less (from 17s to 10s on a large example that uses
~15 packages, from 2.9s to 2.5s for assemblage).
Remove dependency on ocamlgraph. Dead code only.
As_project: reorder things logically.
As_project: (internal) rename parents to path_to_root.

As it includes the component you apply the fun to.
As_project: rename Component.source to Component.source_dir

This is what it is.
As_project: rename Component.filter to Component.filter_map.

That name is more accurate.
As_project, add Component.keep.

This is really filter, but filter by itself is ambiguous it's unclear
whether you filter out or filter through.
Let Pkg components have phases & write phase variables in Makefile.

We don't use them yet.
Move As_project.Component to As_component.

Other submodules of As_project go in As_component. Constantly
refering to As_project.Component.bla was becoming annoying.
Add Component.phase_deps, definable by components.

The idea is to prevent components from resolving the flags of their
dependencies in As_project as is done now. We would like to resolve
them in backends. However we don't want to put too much logic in the
backends. The function takes a component and a phase it must return
the components whose corresponding phase flags should be injected in
the component's flags.
Add phase_deps to `Bin.

For a start.