Cleaned-up the algorithm

* Created a Line class to use in the mediumAI algorithm to make it more
stream-lined and readable.
* Created a couple helper functions used by mediumAI:
- bestOfLines takes two lines and outputs the better of the two
- bestBlankCell scans a given line and returns the index to the "best"
blank cell in that line