Benchmark and profile new blocky.Gravity class

Compare the performance of Gravity.planting with the harvester module.
Gravity.planting is a bit slower because of many hash calculations in
Gravity.predicted. Might be able to overcome this by passing optional
arg `fromcache=True` to value and shape_of_anomaly that bypasses the
call to predicted and gets the array straight from cache.
Bypassed call to predicted for a speed boost

Benchmarks show 1.8s to calculate using harvester and 1.4s with
blocky.Gravity. Bottlenecks now are sensitivity computations (with
gravmag.prism) and calculating value and shape_of_anomaly
(numpy.linalg.norm and numpy.sum).

Possible speedup is using the footprint approach to compute sensitivity.