Add encoding.

* Switch to more generic type checks (Associative/Positional
instead of Hash/Array)

* Add to-json/from-json convenience methods to mirror the
JSON::Tiny API. Note that from-json still puts things into a
Jansson-based object, not a true p6 data structure.

* All values (even simple ones) have a jansson representation now:
they're JSON::Documents.

* Fix up array assignment to support assigning to indices off the
end of the array (like P6). It inserts JSON null values in between.

* Fixed the bug spotted by colomon++ (skipping the first key in .keys).