Get rid of cu, wrap a few long lines and compactify As_project.

`CU, CU, value cu and type cu type are replaced by
`Unit, Unit, value unit and type comp_unit.
Add .gitignore.
Rename As_features.elt to As_features.atom (internal name).
Review Features API.

* Rewrite documentation.
* Change argument order (name first)
* ~default becomes optional (defaults to true)
* Sort As_features' implementation logically
Add Assemblage.Features.{of_pkg,of_pkg_pp}.
Merge pull request #39 from dbuenzli/cucu-is-out

Get rid of cu, wrap a few long lines and compactify As_project.
Merge pull request #40 from dbuenzli/features-improvements

Features improvements
Add an available feature field to all components and related changes.

* Pkg.t is now a proper data structure (rather than just a string).
* Assemblage.pkg combinator can now specify a package as being
  optional. A feature is then automatically created for it (see
  dicussion in issue #31).
Remove earlier whitespace poops introduced by a dirty commiter.
Remove Assemblage.Features.{of_pkg,of_pkg_pp}.

Superseded by ~opt argument of Assemblage.{pkg,pkg_pp}, see soliloquy
in issue #31.
Merge pull request #44 from dbuenzli/available-for-every-component

Available for every component
Refactor Flags and As_flags a bit.

* Rewrite documentation.
* Introduce contexts for JavaScript
* Introduce ~available for flags (partially fixes #41).
  Still need to introduce a Features evaluation context
  on concrete command line arguments access.
API doc: shuffle things around.
Add a flags field to every component.
As_project: make it easier to work with components (type-wise)
Colonless (as in point) change.

Sorry about that but caml-mode renders name: tokens as labels
which makes my interface reading confusing.
As_project reorder things (possibly) logically.
Add .ocp-indent file.
Add available field to project.
Add Assemblage.add for registering projects.

Assemblage.create will now return a project value. This may not be
useful for now but it's just to put us in a good position if we once
want to decide to provide an API to inspect and process project and
component values.