Reject transactions with excessive numbers of sigops
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.
[Qt] move SubstituteFonts() above ToolTipToRichTextFilter

- doesn't belong to the ToolTipToRichTextFilter class so move it up
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.
Reduce maximum coinscache size during verification

Due to growing coinsviewcaches, the memory usage with checklevel=3
(and standard settings for dbcache) could be up to 500MiB on a
64-bit system. This is about twice the peak during reindexing,
unnecessarily extending bitcoind's memory envelope.

This commit reduces the maximum total size of the caches used during
verification to just nCoinCacheSize, which should be the limit.
Merge pull request #4675

ea100c7 Reduce maximum coinscache size during verification (Wladimir J. van der Laan)
Merge pull request #4150

4fad8e6 Reject transactions with excessive numbers of sigops (Peter Todd)
Revert "Reject transactions with excessive numbers of sigops"

This reverts commit 4fad8e6d831729efa1965fa2034e7e51d3d0a1be.
Don't poll showmyip.com, it doesn't exist anymore

Fixes #4679.

This leaves us with only one candidate, checkip.dyndns.org.
GetMyExternalIP should be phased out as soon as possible.
Merge pull request #4682

c33b983 Don't poll showmyip.com, it doesn't exist anymore (Wladimir J. van der Laan)
Reapply: Reject transactions with excessive numbers of sigops

Reverting was based on a misunderstanding, it appears.

Github-Pull: #4150
bitcoin-tx: fix build warnings

Cleans up a bunch of:
warning: missing braces around initializer for ‘const<anonymous struct>’
Merge pull request #4696

616c243 bitcoin-tx: fix build warnings (Cory Fields)
Merge pull request #4659

c4bae53 [Qt] move SubstituteFonts() above ToolTipToRichTextFilter (Philip Kaufmann)