Moved 'properties' up the GeoJSON class tree

My reading of section 1 GeoJSON (http://geojson.org/geojson-spec.html#introduction) spec says that properties can be held by most any type of data.  The examples on the spec-page show properties where the pre-pull-request version could not read them (resulted in an exception and no data read from the file). Not having the properties prevented deserialization of US counties found in the world.geo.json collection (https://github.com/johan/world.geo.json).

This pull request moves the properties dictionary up to a higher point in the class tree.  It also adds an annotation to prevent serialization of the properties dictionary when there are none (thus, tests did not need to change).