Attempt at a read_extra() method.

Reads data into output arrays that might only overlap with
the raster dataset.

Towards a fix of #190.
Add a greedy option to read().

This flags the intention to use windows that extend beyond the
dataset's extent.
Code cleanup, offset bug fix, better docstring.
Return out to kwarg in read_band()
Merge remote-tracking branch 'origin' into issue190

Conflicts:
	rasterio/_io.pyx
Merge pull request #209 from mapbox/issue190

Attempt at a read_extra() method.