Convert rasters to Short so no overflow.

Also pulled RasterReducer out into a private val since we can reuse the same one for each weightedOverlay call.

Fixes #23