Add new Cost-Distance Operation

This operation includes the benchmarking suite as well as a spec test. The algorithm implemented is a simple fan-out using a priority queue. I know that Dana Tomlin has done some awesome research and it would be great to integrate that at some point but I think this is a good start.

The benchmarks vary a bit since they use randomly generated data but usually a 2000x2000 raster can be processed in about 4.5 seconds. 

```
rasterSize      ms linear runtime                                                                         
        64    6.21 =                                                                                      
       128   17.57 =                                                                                      
       256   69.92 =                                                                                      
       512  289.77 =                                                                                      
      1024 1214.21 ======                                                                                 
      2048 5338.41 ==============================
```