Basic path function supports adjacent regions.

This allows cleaner generated paths because we can consider the current
and next region when building a path.  When the target hex is on the
edge of a region, we can go directly to it instead of taking two steps
(nearest hex in target region, complete path from there).