allow txindex to be removed and add a reindex dialog

- adds a reindex dialog for Bitcoin-Qt to change -txindex without the need
  to supply -reindex
- now also does a -reindex, when removing the -txindex switch
fix comment about dust logic
send tx relay flag with version
Remove broken option to skip input checking for wallet txn.
fixed: include boost header as necessary

Without this include, sometimes BOOST_VERSION was defined and sometimes
it was not, depending on which includes came before it. The result was a
random mix of sleep or sleep_for for boost versions >= 1.50.
fixed: don't use thread::sleep_for where it's known to be broken

Fixes #2690.
Merge pull request #2769 from TheBlueMatt/master

Remove broken option to skip input checking for wallet txn.
Merge pull request #2766 from theuni/fix-shutdown-deadlock

Fix shutdown deadlock, ticket #2690
Merge pull request #2648 from Diapolo/txindex

allow txindex to be removed and add a reindex dialog
Merge pull request #2763 from bitsofproof/master

Send tx relay flag with version message
Merge pull request #2760 from cozz/cozz2

fix comment about dust logic
Move implementation of some CBlockLocator methods

Move out of main.h to improve compile times and add documentation
for what the methods do.
Introduce a CChainParameters singleton class and regtest mode.

The new class is accessed via the Params() method and holds
most things that vary between main, test and regtest networks.
The regtest mode has two purposes, one is to run the
bitcoind/bitcoinj comparison tool which compares two separate
implementations of the Bitcoin protocol looking for divergence.

The other is that when run, you get a local node which can mine
a single block instantly, which is highly convenient for testing
apps during development as there's no need to wait 10 minutes for
a block on the testnet.