Ensure OGRShapeReader internal data source is closed

OSGeoOGRShapeReader and CtypesOGRShapeReader used self.opened to keep
track of whether the internal OGR data source is open, however
self.opened was never set to True meaning that calls to self.open would
open a new data source and the existing data source was never closed in
self.close. Updated to use self._ds to keep track of whether the
internal OGR data source is open.

Use contextlib.closing and the with statement when using OGRShapeReader
to ensure that it is closed when out of context.
Merge pull request #105 from walkermatt/ogr

Ensure OGRShapeReader internal data source is closed