Add Linux script to limit outgoing bandwidth used by Bitcoin

This commit adds a Linux script that uses tc and iptables to
limit outgoing bandwidth to Bitcoin nodes. All tcp connections with
a source or destination port of 8333 are limited to the chosen rate.
It does not alter the incoming bandwidth. Additionally, outgoing
bandwidth to a host on a local LAN (defined by the LOCALNET variable)
is not limited.
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
Get rid of db dependencies on main
Moved PushGetBlocks to main.cpp to eliminate dependence of net.cpp on CBlockLocator.
Moved unrelated-to-network calls in StartNode and StopNode into init.cpp
Removed net.cpp's dependency on init.h.

Added explicit include of main.h in init.cpp, changed include of init.h to include of main.h in net.cpp.

Added function registration for net.cpp in init.cpp's network initialization.

Removed protocol.cpp's dependency on main.h.

TODO: Remove main.h include in net.cpp.
Created core.h/core.cpp, added to makefiles. Started moving core structures from main to core beginning with COutPoint.
Moved CInPoint to core. Removed GetMinFee from CTransaction and made it a regular function in main.