Simplified pondering, made normal search asynchronous

Removed the explicit distinction between the pondering and the normal
search from the code. Now every search is started asynchronously
allowing the UI to send a stop command while the search is running,
which can happen if the user interrupts a game or wants to take a move
back.
Pondering is simply a search started with infinite depth. The maximum
depth of the search is now part of the search state, and it's wrapped in
TVar. A ponderhit is simply an update to this value with a lower number
while the search is running.

Reformatted UCI.hs according to Snap style.