NOT MERGING: For Review

 - Make a case class `Raster` that replaces all the places we have `(tile: Tile, extent: Extent)`.
 - Renames the poorly-named `warp` to `resample`
 - Put methods on `Raster` that delegate to methods on `Tile` that require that `Tile`'s extent.