Add optional bbox , properties to __geo_interface__ implementation.

Required adding properties attribute to geom objects created by geoj2geom.  Created a GeoInterfaceMixin class that geometry objects inherit from and removed the __geo_interface__ property from the individual objects.  This change should make it easier to maintain the __geo_interface__ as code changes within the project and it should allow for geometry to be passed from one module to another while maintaining the properties (ex: pyshp to shapy to mapnik).