add permanent secondary thread for async command execution (fixes #36)

change details
- new protocol AsynchronousCommand; a command class that adopts the protocol states its
  wish to be executed asynchronously
- CommandProcessor now runs a secondary thread in whose context it executes asynchronous
  commands; because the thread is permanent there is no concern anymore that callbacks
  from GTP commands are made in the context of a thread that no longer exists (which of
  course does not work and hangs the application - an issue that had to be avoided very
  carefully and with much juggling)
- CommandProcessor is also responsible for displaying the progress HUD while an
  asynchronous command executes; the command may inform CommandProcessor of progress
  updates, which it dutifully forwards to the progress HUD
- because commands are no longer responsible for managing the progress HUD, the HUD is
  not hidden anymore between chained commands (i.e. one command executing another); this
  results in a better user experience
- the implementation of LoadGameCommand has become more straightforward because it does
  not need to manage a progress HUD; also, all steps of the command now run
- most of the application startup handling has been refactored out of ApplicationDelegate
  into a new asynchronous command SetupApplicationCommand
bugfix: display correct color for cross-hair stone when viewing old board position
status line displays "computer is playing for..." instead of "<player> is thinking..."
"new game" user defaults are now saved when a game is loaded from the archive
upgrade to Xcode 4.6 and iOS SDK 6.1
fix iOS 5 crash: programmatically dismiss GameInfoViewController on memory warning
fix memory leak in BoardPositionToolbarController
no longer crash on iPad because same table view cell is reloaded twice
bugfix: use board position to calculate whether moves are legal
fix status line font and layout on iPad
bugfix: update status line after new game is started

the bug fixed by this commit was introduced at some time during development
of 0.10.0 (i.e. it is not present in 0.9.x)
fix possible game states for pass, resign and pause (fixes #94 and #95)

- pause is now possible even when the computer thinks about its very first
  move; previously the user had to wait until the first move was played
  before she could pause the game; this bug had no serious consequences:
  tapping the tool button was simply ignored
- pass and resign are now possible if GoGame is in state
  GoGameStateGameIsPaused; previously this would cause the app to
  crash!
remove unused GoMove property "computerGenerated"
iPhone: BoardPositionView uses color scheme similar to table views on iPad
allow discard of board positions after the game has ended (fixes #21, fixes #22)
iPhone: correctly update enabled state for board position navigation buttons
sync GTP engine when board position is restored on app launch