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
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.
build: Fix boost build on some platforms

When the libpath doesn't line up with the value from config.sub, we don't find
the correct path to boost's libs. This adds a hack to try another path before
giving up.

Should close #3219.
build: add option for reducing exports

Enabled automatically if boost >= 1.49.
See: https://svn.boost.org/trac/boost/ticket/2309

Also, check for a default visibility attribute, so that we can mark future
api functions correctly.
depends: fix shasum on osx < 10.9

Shasum verification from stdin doesn't work there, so we write to a file
instead.

Formatted a bit too.
build: add funcs.mk to the list of meta-depends

If anything in funcs.mk changes, everything must rebuild
Changed LevelDB cursors to use scoped pointers to ensure destruction when going out of scope.

This corrects a bug where an exception thrown reading from the database causes the cursor to
be left open, which causes an assertion error to occur when the database is deleted (around
line 938 of init.cpp).
Merge pull request #4663

4975ae1 build: add option for reducing exports (Cory Fields)
devtools: Exclude default exports from symbol-checker script

See discussion in #4663.
Merge pull request #4656

5cbda4f Changed LevelDB cursors to use scoped pointers to ensure destruction when going out of scope. (Ross Nicoll)
build: Add --with-utils (bitcoin-cli and bitcoin-tx, default=yes).
Help string consistency tweaks. Target sanity check fix.
Clean-up SyncWithWallets/SyncTransaction