Unit component, add opaque and hidden fields.
Lib component. Refactor and simplify a bit.
Lib component. Fix generated files.
Generate correct .install file for libs.
Replace the u_opaque and u_hidden fields by u_interface.

u_interface is of type [ `Normal | `Opaque | `Hidden ]. In
fact `Hidden implies `Opaque so it made no sense to have
it as two different fields.
Apply the new ~interface argument to assemblage's assemble.ml.
Also install .cmti files for libraries.
Merge pull request #109 from dbuenzli/lib-visibility-control

Library interface visibility control