WIP: more decoding

More decoding enhancements

 * [x] decode `null`, `true`, `false`
 * [x] decode basic strings
 * [ ] decode strings with escape characters
 * [x] decode basic numbers
 * [ ] decode numbers with exponents
 * [x] decode basic and nested arrays
 * [x] decode basic and nested objects
 * [ ] `JSON.decode` only accepts UTF-8, per Unicode spec
 * [ ] `JSON.decode` works with `Stream`s