Remove tx from AlreadyAskedFor list once we receive it, not when we process it.
Allow -onlynet=onion to be used

Just an alias for onlynet=tor, but matches the new name
of the proxy option -onion= better.
Add IsReachable(net) function

Allows other parts of the program to query for reachable
status of a network. Similar to IsLimited(net).
Add GetNetworkName function

Returns the network name for an Network enum.
Fixes ignored qt 4.8 codecs path on windows when configuring with --with-qt-libdir
[Qt] ensure all class attributes are init to 0

- in BitcoinGUI and UnitDisplayStatusBarControl
[Qt] use BitcoinGUI::DEFAULT_WALLET constant in bitcoin.cpp
[Qt] disable tray interactions when client model set to 0

- this prevents the ability to fiddle around with the system tray when
  already shutting down (e.g. on slow shutdowns because of a proxy delay)
- extends solution for #4360
Add a way to limit deserialized string lengths

and use it for most strings being serialized.
Simplify serialize.h's exception handling

Remove the 'state' and 'exceptmask' from serialize.h's stream implementations,
as well as related methods.

As exceptmask always included 'failbit', and setstate was always called with
bits = failbit, all it did was immediately raise an exception. Get rid of
those variables, and replace the setstate with direct exception throwing
(which also removes some dead code).

As a result, good() is never reached after a failure (there are only 2
calls, one of which is in tests), and can just be replaced by !eof().

fail(), clear(n) and exceptions() are just never called. Delete them.
remove unused class CAddrMan; from db.h
Make CCryptoKeyStore::Unlock check all keys.

CCryptoKeyStore::Unlock has a loop to attempt decrypting each key which
 only executes once, likely due to a simple mistake when the code was
 originally written.

This patch fixes the behavior by making it check all keys. It also adds
 a fatal assertion in the case some decrypt but some do not, since that
 indicates that the wallet is in some kind of really bad state.

This may make unlocking noticeably slower on wallets with many keys.
Dont run full check every time we decrypt wallet.
Add a getutxos command to the p2p protocol. It allows querying of the UTXO set
given a set of outpoints.
Add boolean HaveWatchonly and signal NotifyWatchonlyChanged
[Qt] Add column Watch-only to transactions list
ui_interface: remove unused NotifyBlocksChanged signal
Create new signal for notification of new blocks.  Use w/ -blocknotify
Closely track mempool byte total. Add "getmempoolinfo" RPC.

Goal:  Gain live insight into the mempool.  Groundwork for future work
that caps mempool size.
build: fix automake warnings about the use of INCLUDES

While we're at it, reduce the use of LIBS as well. This makes dependencies
explicit.

Fixes building with (the not-yet-merged) libsecp256k1 as well.

Github-Pull: #4689
Rebased-By: Wladimir J. van der laan <laanwj@gmail.com>
Rebased-From: 909b347 c0e5dda