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