Port Thread* methods to boost::thread_group

Conflicts:
	src/bitcoinrpc.cpp
	src/checkqueue.h
	src/init.cpp
	src/main.cpp
	src/main.h
	src/net.cpp
	src/net.h
	src/test/test_bitcoin.cpp

Conflicts:
	src/bitcoinrpc.cpp
	src/init.cpp
	src/net.cpp
	src/net.h
port stake miner to boost::thread_group
Clean up shutdown process

Conflicts:
	src/init.cpp
	src/init.h
	src/main.cpp
	src/net.cpp
	src/net.h
	src/txdb.cpp
	src/util.cpp
	src/util.h
	src/walletdb.cpp

Conflicts:
	src/init.cpp
	src/init.h
	src/main.cpp
	src/qt/bitcoin.cpp
	src/qt/qtipcserver.cpp
Have Qt poll for shutdown requested, the QT way.

Conflicts:
	src/qt/bitcoin.cpp
	src/qt/bitcoingui.cpp
	src/qt/bitcoingui.h
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

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
Port Thread* methods to boost::thread_group

Conflicts:
	src/bitcoinrpc.cpp
	src/checkqueue.h
	src/init.cpp
	src/main.cpp
	src/main.h
	src/net.cpp
	src/net.h
	src/test/test_bitcoin.cpp

Conflicts:
	src/init.cpp
	src/net.cpp
	src/net.h
port stake miner to boost::thread_group

Conflicts:
	src/net.cpp
Clean up shutdown process

Conflicts:
	src/init.cpp
	src/init.h
	src/main.cpp
	src/net.cpp
	src/net.h
	src/txdb.cpp
	src/util.cpp
	src/util.h
	src/walletdb.cpp

Conflicts:
	src/init.cpp
	src/init.h
	src/main.cpp
	src/qt/qtipcserver.cpp
Have Qt poll for shutdown requested, the QT way.

Conflicts:
	src/qt/bitcoin.cpp
	src/qt/bitcoingui.cpp
	src/qt/bitcoingui.h
changes to thread code (directly use boost::thread)

- removes our NewThread() function an replaces remaining calls with
  boost::thread with our TraceThread template
- remove ExitThread() function
- fix THREAD_PRIORITY_ABOVE_NORMAL for non Windows OSes

Conflicts:
	src/net.cpp

Conflicts:
	src/net.cpp