Refactoring Time

This commit includes code that will not compile. I am refactoring the
structs for the game to make things faster/easier to understand.
Pathfinding, Terminal Refactored, Sizes and Points

I have implemented a lot in this commit. The first was the pathfinding
algorithm based on wave propagation. It is not particularly memory or
time efficient but it is exceedingly simple to implement.

I moved all terminal manipulation functions into their own file.

I created Size and Point structs to help with manipulation of
positions.