Demo Changes

These changes are result of driving geotrellis-spark on a cluster to provide demos for presentations. They include some optimizations and a lot of bug fixes.

Most notably geotrellis-spark now does not have a hard dependency on spark and user must use spark-submit to launch it. This makes it a lot easier for geotrellis-spark to be used a library as spark-submit takes care of shipping JARs around.

Also note that Catalog now saves the raster histogram. This allows us to pain each tile with globally appropriate colors.
@lossyrob, looking at this I feel we should remove this dependency and get rid of TMS service code (which is trivial). We can have helper functions to pull out single tiles and unit test those. But it seems weird to have a TMS service in a library. Maybe a better place for it is either demo or 'contrib' subproject ?