throw datasource_exception on GDAL RasterIO failures

Trying to read from a VRT that refers to a raster file that doesn't exist or cannot be read currently returns null data instead of throwing an exception.

Changes gdal_featureset to check return values from RasterIO and throw a datasource_exception if it fails.

(Same as https://github.com/mapnik/mapnik/pull/2555)