Bitcoin-Qt: harmonize 2 setClientModel() functions

- harmonize BitcoinGUI::setClientModel() and RPCConsole::setClientModel()
- now RPCConsole::setClientModel() also includes a direct call to
  setNumBlocks()
build: prepare to move DetectShutdownThread
build: split the non-gui startup routines into a new file

This will allow each to have its own main(), meaning that we can build a common
base client and simply link in the correct startup object to create the
appropriate binary.
build: add global var for whether or not the gui is enabled
build: cosmetic: split usage string for easier formatting
build: use runtime setting for displaying the help message rather than QT_GUI define
build: use runtime setting for wallet rather than QT_GUI define
build: cosmetics after last commit
build: kill off the QT_GUI define
osx: fix bitcoin-qt startup crash when clicking dock icon

Crash probably introduced by 4d17a1b0.
Inialize the window to NULL and verify it before use.
Merge pull request #2741 from theuni/fix-osx-dock

osx: fix bitcoin-qt startup crash when clicking dock icon
Merge pull request #2731 from Diapolo/rpcconsole

Bitcoin-Qt: harmonize 2 setClientModel() functions
Merge pull request #2700 from theuni/gui-split

autotools: Gui split
Coin Control Features
Fix comment about dust logic
Fix compiler warning about unused local variable