Basic Jawn support

This PR includes basic support for the jawn ast. It can use any of the supported jawn parsers (or custom parsers) for decoding json.
It uses the built in jawn ast for encoding json.