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.
Merge pull request #45 from dbuenzli/flags-everywhere

Flags everywhere