Implemented alternative schema.

This is not yet complete and still needs performance tuning.

Bug: #50
Implemented lean schemas.

JsSchema has been moved from copying the full hash set to a node structure and a delayed flattening of the node tree if the schema is used often. Flattening of schemas is done on a background thread to limit the impact on normal operation.

Bug: #50