Switch board :score to be a map that tracks :max.

Tracking the maximum tile value is more important than tracking the "score" as
the interactive game gives you.

Also removed some comments.
Add some initial fns to automate game play.

play-this-seq takes in a given seq of moves and plays them.

play-ai takes an ai-fn that takes in a board and returns the next move.

a-not-i is a simple random "AI".
Swap arg order for flip-ya to make board first.

This lets us use -> synthread when possible.
clean up comment
Swap arg order for 'slam.

This makes it more possible to -> board in more contexts.
Track all game moves.

conj new game moves onto a vector in the meta of board.
Optimize slammability test

Testing left is the same as testing right, and the same is true for up/down. We
only ever need to test two cases.
Update scoring: max tile

Stop tracking points as they are awarded by interactive games; the much more
interesting thing is the max tile value.
Call 'score with new signature.
do not track .classpath
Refactor move to print-board only during the game.
Change arg order of play-this-seq.

Make board the first arg for consistency with other fns.
Rename play-this-seq to indicate its utility

play-this-seq is really a move fn for any case when you know ahead of time what
a series of moves will be.
Allow an AI fn to return a collection of next-moves.
Add a second level of l-d-r-u AI where d always follows u.
Add incanter and calculate stats on max-tile value

Calculate the 5-number summary (min, max, median, mean, sd) for a collection of
numbers. This will be used to indicate the success of a given AI run repeatedly.
Do not print the board every move.

This makes it faster to run a few thousand tests.
Fix the null model; return only real possibilities
clarify ai-pref-dir-2 doc string
Add play-ai-stats to run many tests.

play-ai-stats will run n AI tests and return a 5-number summary of the max cell
values reached.