Goal Evaluators

I modified all but the A* search to use a GoalEvaluator class.  The
GoalEvaluator looks at the current node index and evaluates if it is
the node sought.  The criteria for "is this the node" is buried in the
class, so it could be a node index match, but could also be a flag set
(e.g. connected) or some node specific contents (e.g. is there a weapon
here).

This change was motivated by the next feature. The next feature to add
is a change to MovingEntity when it is idle.  If it is just sitting
there in the middle of the asteroid field, if an asteroid comes and
collides with it, it looks kind of silly just being pushed along.
Instead, if it is sitting there and it is about to be hit, it should
move to someplace "safe".  This will be a quick Dijkstra search for a
nearby node that is not connected.