Remove unnecessary attr_readers from SpawnPoint

It inherits these from `Sprite`
Clean up output

Removing debug statements, and using `clear` to try and keep the terminal steady
during the game.
Add helpful Agent methods

I made `BogGrabTest` work better with spawn points, and while I was doing that
wrote some helpful methods `Agent`s can use.

- `can_move?` tells you whether there is a `Wall` in the direction you check
- `spawn_point` delegates to the `Agent`'s `Player` so it know where home is
- `sensors` are now handed to the agent before calling `action` so the helpers
  can get at them easily
- `SpawnPoint#on_*_edge?` helps determine which direction home is
- Created `Coordinate` module to help with grid math
Randomize directional bias to improve box search

This helps us spread out more over the map, rather than head down the diagonal.
Add Agent#on_spawn_point?

This is `true` if we're on top of our home `SpawnPoint`. Using it, the
`BoxGrabTest` can head back out after it brings a box home.
Add `Sensors#boxes` containing visible boxes

This will be often used and returns a set of relative coordinates towards a box
within sight. It lets our test agent zero in on any that it happens across.
Fix FiniteTimeVictory#longest_chain

Messed up the use of `DIRECTIONS` during a refactor.
Rename BoxGrabTest -> GathererAgent

This guy's smart enough to warrant a real name now.
Set up a better basic game

Two simple gatherers get 500 ticks, which is plenty to clear this size board.
Generalize Agent#near?(Sprite, direction)

This is `true` if there is at least one of `Sprite` in `direction`.
Define Sprite.<sprite>? methods

When something inherits from `Sprite`, we create a predicate for it. Eg, `wall?`
or `spawn_point?`.
Assign box ownership when part of a chain

This adds a step to the `rectify` stage that marks boxes connected to a
`SpawnPoint` as owned by that `Player`, which allows their `Agent`s to notice
and continue building the chain.
Make GatheringAgent build chains

Now that we can tell which boxes are ours, we can start lengthening the chains!