Add .gitignore
Add __geo_interface__ to shaperecords and optional data to shapes.

Initial implementation of __geo_interface__ on shaperecords.  Required adding fields attribute to _Shaperecord class to allow for the field names to be passed to allow creation of properties in output __geo_interface__ GeoJSON.  In order to allow for __geo_interface__ to exist on both shapes and shaperecords I extracted the existing __geo_interface__ code from _Shape and created a GeoInterfaceMixin class that both _Shape and _Shaperecord could inherit from.  When possible the bbox and properties should be created for shapes and shaperecords.  I also created two additional test shapefiles, intersections and points and a example program named geotime.py  that calls the __geo_interface__ method on the shapes and shaperecords from the test shapefiles and prints the results.
Add __geo_interface__ to results of shaperecords method.

Previous commit was initial implementation of __geo_interface__ on *individual* shaperecord objects.  This commit adds the ability to call __geo_interface__ on the results of the shaperecords method.  The resulting object from a call to shaperecords is now a _ShareRecords object that is a subclass of a Python list with the GeoInterfaceMixin.  The geojson resulting from the __geo_interface__ call is a FeatureCollection object.  This code is currently ony working with the examples provided in the geotime.py example file and will only work property when the data is homogeneous objects (ex: all Points) but this should be the case for all shapefiles.
Merge branch 'master' of https://github.com/jzmiller1/pyshp