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).
Added erroring behaviour for attempting to use the stream option with geojson and keyed json output.