Add traits to make defining facades easier in most cases.

The new SimpleFacade and MutableFacade correspond to the two most
obvious use cases (building from immutable and mutable collections).
The only real need to define a Facade directly is when it is more
efficient to work with other types than convert from these.

At this point only Argonaut's facade is manual. This commit also adds
a Rojoma facade.
Major refactor.

This commit adds documentation, moves the tests to the ast project
(and gets them working) and drastically improves the ASTs ability
to render JSON as a string.
Major AST clean up.

This commit gets the AST and rendering code in good enough
shape to release.
add NullFacade, clean up, and test
API changes for the async parser
Get async parsing working and somewhat tested.