Iterative Deepening search

Uses Depth-limited search but increases the depth limit in each iteration by a certain amount.