Updating focal operations
Fixed some issues with Focal operations with new TileWithNeighborhood.

Creating FocalOpMethods for focal operations on raster sources.
Work on ZonalSummarySpec
More focal op methods. Added min,max,minMax to RasterDS
Change ZonalMin, ZonalMax, ZonalMean to return Int
Focal Operations

- Created raster.op.global for global operations that need the whole
(untiled) raster in order to function. These operations cannot be
distributed against tiles. That is not to say they will never be
able to; once the execution parameters change (e.g. iterative
algorithms over tiles becomes a possibility).
Renamed RasterDataSource -> RasterSource & ValueDataSource -> ValueSource
Merge remote-tracking branch 'upstream/master' into refactor/datasource
Merged in zonal summary changes.

- Also fixed bug found by ejc about how RasterSource was placing io.LoadTile's in the tile sequence.
Merge branch 'master' of github.com:ejc123/geotrellis

Conflicts:
	src/test/scala/geotrellis/raster/op/zonal/TiledPolygonalZonalSummarySpec.scala
Merge branch 'master' into ZonalSummaryFix
Change ZonalMean to return Double
  Make one Mean case class for ZonalMean and ZonalMeanDouble
  Silence success cases in TiledPolygonalZonalSummarySpec
Merge pull request #619 from ejc123/ZonalSummaryFix

Change zonal {min,max,mean} to Int instead of Long
Merge pull request #612 from Markko/hydrology

add support for multiple flow dirrections
Fixes to demo and server projects.

- Also generalized local binary operations.
Merging upstream changes.
Fixed benchmark project.
Changed Kernel.createGaussian to Kernel.gaussian
Merge pull request #618 from lossyrob/refactor/datasource

Focal Operations in RasterSource
Update Neighborhood.scala

Fix comments