Geo: Adds support for GeoJSON GeometryCollection

Closes #2796
Feels inconsistent that `geometrycollection` is all lowercase while `Point` and `LineString` are camelcase?