more array tests. Also fix use after free in YajlError
WIP
Refactor gapi.py into components
Refactor source_service.py

* Parse all embedded objects via their top-level schemas.
* use namedtuples instead of tuples for schema state info.
* no more schema stack -- go back to only outputting top-level schemas.
* SET_*_AND_RETURN need to pass through next state
* Map keys should only be recognized in certain states (now that there
  are multiple object states per *Callback)
* Fix JsonCallback memory leak (wasn't cleaned up by JsonParser)
* Saner function signatures for JsonParser::On*. Also made public
Fix array of array parsing
More parsing of complex types
merge master
Encoding compiles. Next: tests
Add compare function, encode test (doesn't work)
Default constructors, fixed encoder -- balks on extra newline