Add read() to RasterReader to read bands as 3D array

 * Use 'masked' argument to return masked array based on nodatavals
 * Needs more verification and unit testing to ensure it works, and
   this is open to any other addition/removal of features as this is
   a new high-level function.

Other changes in this commit:
 * Check 'window' parameter structure, and raise ValueError if not correct
 * Cython 0.21dev has difficulty compiling e.g. `set([0]).pop()`, so
   modify how 'meta' property works, for now.
 * Allocate Numpy arrays with 'empty' rather than 'zeros', since they are
   expected to be filled with values from raster.
 * setup.py: make an executable, 'find_packages' not used, and avoid
   cythonizing new files on './setup.py clean' command
Improve read() to handle NaN as NODATA; add tests
Merge branch 'master' of github.com:mwtoews/rasterio into mwtoews-master

Conflicts:
	rasterio/_io.pyx