Support export of geo datasets as GeoJSON

- As it turns out, Geotools support for serializing FeatureCollections to GeoJSON is quite complex and unwieldy. I ended up just using Rojoma JSON as the code to serialize to GeoJSON using the Geotools API was about 5x as long, much of it boilerplate.
- The reason there's so many new files is that I split out all the exporters to their own files. I haven't actually changed anything in JsonExporter, CJsonExporter or CsvExporter.
It does, but it's not particularly nice to work with.  In the past I've tended to adopt a hybrid approach when generating "streamed" output in which the outermost datum's structure is handled via strings but all contents are actual JValues.

The non-hybrid approach would be something like this.  Say you're generating a large array of small values of type T, and you have an `Iterator[T]` which produces them.  Then you could write them somewhere like this, roughly:

```scala
def writeAsList[T : JsonCodec](w: Writer, items: Iterator[T]) {
  val tokens = EventTokenIterator(Iterator.single(StartOfArrayEvent()) ++
     items.flatMap(JValueEventIterator ∘ JsonCodec.toJValue) ++
     Iterator.single(EndOfArrayEvent())))
  tokens.foreach { token => w.write(token.asFragment) }
}
```

There really ought to be a method in `JsonUtil` to package all that up.