Add rpc command 'getunconfirmedbalance' to obtain total unconfirmed balance

Conflicts:
	src/rpcserver.cpp
[Qt] add messages when handling local payment request files

- important for the open URI dialog to give users feedback
  when a file is invalid etc.
add new RPC implementation file `rpcmisc.cpp`
Move `getinfo` from rpcnet to rpcmisc

`getinfo` is a general info method which shows information
from multiple sources, it doesn't belong in rpcnet.cpp or
any of the other current RPC implementation files.
Move `settxfee` from rpcblockchain to rpcwallet

`settxfee` only affects the wallet, not the block chain.
Move `nTransactionFee` from main.cpp to wallet.cpp

Transaction fee is only used by the wallet.
No need for it to be in main.cpp.
Move `validateaddress` from rpcwallet to rpcmisc

Enables it in --disable-wallet compiles.
Delimit wallet-using part using #ifdef ENABLE_WALLET.
Move `createmultisig` from rpcwallet to rpcmisc

Enables it in --disable-wallet compiles.
Move `verifymessage` from rpcwallet to rpcmisc

Enables it in --disable-wallet compiles.
Remove -logtodebugger

`-logtodebugger` is a strange, obscure, WIN32-only (mostly MSVC) thing.
Let's clean up the options a bit get rid of it.

test_bitcoin was using fLogToDebugger as a way to prevent logging to
debug.log. For this, add a boolean (not exposed as option) fLogToDebugLog that
defaults to true and is disabled in the tests.
Don't create empty transactions when reading corrupted wallet

The current transaction loading code is not exception safe.
An exception during deserialization causes an empty transaction
to be left behind in the wallet.

Fix this by building the transaction separately and adding
it only to the wallet at the end.

Fixes #3333.
qt: Prevent non-functional GUI from popping up during Init

When a InitError or InitWarning happens, the
GUI pops up but is unusable (until Init finishes).

This is caused by showNormalIfMinimized. Add a message
flag to skip this call for Init errors or warnings.
Use mutex pointer instead of name for AssertLockHeld

This makes it useable for non-global locks such as the wallet and
keystore locks.
Document cs_wallet lock and add AssertLockHeld

Add locking assertions to wallet to all methods that
access internal fields and do not aquire the cs_wallet mutex.
LoadWallet: acquire cs_wallet mutex before clearing setKeyPool

Make the function mutex-aware, to prevent having to lock cs_wallet
at the call site in Init.
Merge pull request #3412

c3a7f51 Move `verifymessage` from rpcwallet to rpcmisc (Wladimir J. van der Laan)
723a03d Move `createmultisig` from rpcwallet to rpcmisc (Wladimir J. van der Laan)
452955f Move `validateaddress` from rpcwallet to rpcmisc (Wladimir J. van der Laan)
cd7fa8b Move `nTransactionFee` from main.cpp to wallet.cpp (Wladimir J. van der Laan)
a943bde Move `settxfee` from rpcblockchain to rpcwallet (Wladimir J. van der Laan)
16bc9aa Move `getinfo` from rpcnet to rpcmisc (Wladimir J. van der Laan)
652e156 add new RPC implementation file `rpcmisc.cpp` (Wladimir J. van der Laan)
Make bitcoin compile without wallet if "db_cxx.h" is not present

Moved includes of "db.h" into #ifdef ENABLE_WALLET blocks or remove
them.
qt: Make sure overviewpage button is pressed at startup

Due to walletframe changes, the overview page button is no longer
automatically selected at startup even though the overview page is shown.
Merge pull request #3438

d2b6de0 qt: Make sure overviewpage button is pressed at startup (Wladimir J. van der Laan)
qt: Treat regtest as testnet

No need to do anything special in the GUI for regtest mode,
but do treat it at testnet not mainnet to prevent confusion.