Initial terrain domain work
Properly deal with FindUnitPathToRange

This fixes boats attacking land targets.
Use MobileInfo.GetMovementClass for domain indexing, clearing path for caching and smarter behavior
 * Move DomainIndex from being a manual hard-coded hook in World to an IWorldLoaded trait.
Add support for bridge construction

Each movement class is given a crude transientDomain graph.  Whenever a bridge state
changes, the domain index rebuilds the relevant cells, setting its domain and creating
a transient domain connection.

This graph is searched as a fallback if the straightforward domain comparison is false.
Behavior needs to be double-checked, and ideally destructing connections would be supported,
but so far performance and behavior on allies-02 seems good.
Substantial performance improvement in DomainIndex
      * Get rid of HashSets
      * Cache CanTraverseTile()'s terrain offsets
Add self to AUTHORS
Use static empty pathfinding path when possible