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.
(discussed in #45)
We shouldn't need an implementation of `Encode`/`Decode` per facade. We should just be able to plug any of the Facades that jawn provides for other json libraries (argonaut, spray, play, etc). Jawn's parser takes the facade implicitly and uses it determine how to parse the json.