Add RegionCoverer and SimpleCovering with tests

I added a Region interface with MayIntersect and ContainsCell. Doing it this
way will simplify some other things going forward. For now it simplifies the
SimpleCovering and FloodFill functions.

Added Region interface functions and IntersectsCell to Cap.

Added a bunch of helpers to the Cell implementation.

Removed ByCellID from CellID because that was already implemented in
CellUnion as byID.

Added CellID containment and intersection tests to CellUnion.

Add wedge processor to loop, along with some intersection functions. These
are useful for RegionCoverer.

Generalize Metric a bit for LengthMetric and AreaMetric.

I was unsure how to use the heap container, but was able to track a bug that
caused RegionCoverer to fail tests. The priority queue seems to be fixed for
that case anyway.

I have a weird bug that causes an infinite loop during the
CheckCompleteCovering test. I really need to track that one down.