Fix uses of JSONStreamParser

Uses of JSONStreamParser were letting the data to be parsed to grow unboundedly.
Fixed JSONStreamParser to maintain its own buffer, allowing callers to supply
it incrementally with data as it comes in. The internal buffer is trimmed
down every time a json object is successfully parsed.