Improve GeneralFormationMatcher.doPhantomMatch; add "*" rotation.

Allow doPhantomMatch to operate on formations containing "o" rotations,
like O_SPOTS.  If matching two positions with inexact rotations, use the
more constrained rotation in the output.  This lets us match, for example,
QUADRUPLE_GENERAL_LINES after O_SPOTS and have the unconstrained phantoms
standing in O spots magically become constrained to being in the proper
facing directions for lines.

Added a new "*" rotation string and ensured that Rotation.toDiagramChar()
worked correctly even on non-normalized rotations.

Add Position.dist2() and Position.distComparator() helpers.