ui_interface: remove unused NotifyBlocksChanged signal

Conflicts:
	src/main.cpp
	src/qt/clientmodel.cpp
rpc: Compute number of confirmations of a block from block height

Currently this uses a CMerkleTx, but that makes no sense as we
have the CBlockIndex available. As noted by @jgarzik.

Conflicts:
	src/rpcblockchain.cpp
remove useless millisleep

reduces time to service requests improving performance
net: Remove MilliSleep from StopNode

I don't understand why it would be there in the first place. This looks
like voodoo, not programming.

Conflicts:
	src/net.cpp
Shutdown cleanup prep-work

Create a boost::thread_group object at the qt/bitcoind main-loop level
that will hold pointers to all the main-loop threads.

This will replace the vnThreadsRunning[] array.

For testing, ported the BitcoinMiner threads to use its
own boost::thread_group.

Conflicts:
	src/main.cpp
LoopForever and ThreadTrace helpers

Conflicts:
	src/test/util_tests.cpp
Use a copy in place of mapMultiArgs["-addnode"].

Also moves the DNS lookup of -addnode nodes into the repeated
loop, allowing -addnode to follow DNS changes.

Conflicts:
	src/net.cpp
Make ThreadOpenAddedConnections2 exit quicker if(GetNameProxy()).

Conflicts:
	src/net.cpp
Try more than the first address for a DNS -addnode.

Conflicts:
	src/net.cpp
Add addnode RPC command.

Conflicts:
	src/bitcoinrpc.h
Add a getaddednodeinfo RPC.

Conflicts:
	src/bitcoinrpc.cpp
	src/bitcoinrpc.h
	src/rpcnet.cpp
RPC, cosmetic: push down ReadHTTPStatus() calls into ReadHTTP() callers

ReadHTTPStatus() is currently overloaded:  In client mode, it properly parses
and receives an HTTP status line.  In server mode, it incorrectly parses the
HTTP request line as an HTTP status line.

This server mode bug has never mattered, because the RPC server never
cared about the URI (path) provided in the HTTP request.  That will change in
the future, so go ahead and begin fixing the problem.

This patch is cosmetic, and should result in NO behavior changes.

Further renames:
ReadHTTPHeader -> ReadHTTPHeaders
ReadHTTP -> ReadHTTPMessage
RPC: HTTP server uses its own ReadHTTPRequestLine()
rather than reusing ReadHTTPStatus() from the client mode.

The following additional HTTP request validations are added, both in line with
existing HTTP client practice:

1) HTTP method must be GET or POST.  Most clients use POST, some
   use GET.  Either way, this continues to work.
2) HTTP URI must start with "/" character.
   Normal URI is "/" (a 1-char string), so this is fine.
Have Qt poll for shutdown requested, the QT way.

Conflicts:
	src/init.cpp
	src/init.h