New implementation

Been mulling over my implementation for a few days. There's too much
logic related to moving a tile to continue not having a tile class so
I'm making one.

I've got the API stubbed out and a couple of the easier functions
already implemented. The stubs are commented both with production
comments (above the method declaration in multi-line comments) and
stepwise comments (inside the method blocks as single-line comments).

Tile isn't in use yet but I'm moving it into Git since I'm pretty
confident this is the way I'm going.

Related to #4 and #12.