Add basic water flow.

Animate the flow through the tile and add some basic events and methods
to handle blocked flows, game overs, and onward flows.
Build columns not rows in Grid

When we start scrolling we're going to need to add more columns onto the
Grid as we progress, so let's stick with an approach that matches that.
Fix bug in Rectangle#top_right
Keep cells in a nested array in Grid

This will make it easier to add references to neighbouring cells.
Add neighbours to Cell