Change the board representation.

Before, it was just a container for wires that took a y-offset and
produced a Tile. Now, it's a container for wires that ignore their
input and produce a monadic function that returns a tile after adding
it to Lambency's rendering list. This way, the tiles do not need to know
what position they're in, or what the y-offset of the entire board is.
Only once we step through the wires do we then render the tiles based
on their position in the grid.