Possibility of storing a parent tile in a Tile.

This can be useful for storing the path as we are calculating it.  After that, we can just shoot back up the parent chain and return that.

It makes dfs and bfs really easy.

I also added in your printing method.