Add Operations (not finished yet)

The major enhancements in this pull request are:
1. Various flavors of local Add operation (add raster to constant, add raster to raster, etc.)
2. A more functional RasterReader. This one has the ability to perform range lookups. 
3. Test infrastructure to create / destroy spark contexts 

Pending changes in this pull request are:
1. Correctly passing in metadata to result of operation
2. Generalize the withMetadata to withAnythingTheResultNeeds (with a better name, of course :) )
3. other simple local operations (-, *, /, etc.)