Added primitive iterative deepening and handling time restrictions

Had to make changes to the minimax tree code so that it could throw
exceptions (which I use to control how long the code runs). If it
generates the tree with too high of a depth it will cause a stack
overflow, not sure if this is a result of the fact that huge amounts of
data are being generated, or if there is a bug somewhere