Implements json streaming for array output

This is to address issue #355 and to allow json to be 'streamed' - that
is, each object in the array be written out separated by a newline, rather
than output as one single array. Allowing this means we can convert
large csv streams to json without waiting until the end to see the
output. Many json-processing tools can deal with streaming json (for
instance jq).
Disallow streaming when using the --key or geo options

Streaming doesn't make sense for when data is being output as one json
object - that is if you specify a key column or lat/lon options.

If you try and specify --stream and also --key or --lat/--lon then you
will get an error.