Kill `File component, change `Gen to `Other.

We will have to reintroduce an Assemblage.file shortcut at some
point, as a special case of `Other.
Introduce Lib.kind, kill the `Pp tag and add Assemble.lib_pp.

Note that the API didn't even allow to define `Pp components.
The map between component tags and basic components is now one to
one.
Add Component.pkg_{ocaml,ocaml_pp} and Component.lib_{ocaml,ocaml_pp}.

Component.{pkg,lib} now return any kind of package or lib and
Component.{pkg,lib}_pp no longer exist. The names are longer but
unambiguous.
Merge pull request #48 from dbuenzli/component-simplify

Component simplify