Sanitize assert usage and refuse to compile with NDEBUG.

There were quite a few places where assert() was used with side effects,
 making operation with NDEBUG non-functional.  This commit fixes all the
 cases I know about, but also adds an  #error on NDEBUG because the code
 is untested without assertions and may still have vulnerabilities if
 used without assert.
Fix file hash verification error in deps-win32.yml

libpng was being sha256summed twice, and miniupnpc wasn't being checked at all.
Merge pull request #3344 from gmaxwell/assert_hazards

Sanitize assert usage and refuse to compile with NDEBUG.
Merge pull request #3345 from Michagogo/gitian-descriptor-deps-input-typo

Fix file hash verification error in deps-win32.yml
Merge pull request #3320 from laanwj/2013_11_cli_split

bitcoin-cli: remove unneeded dependencies (only minor code movement)
Move HelpExample* from rpcwallet to rpcserver

General functions used throughout the RPC framework
don't belong in rpcwallet.
Move getinfo to rpcnet.cpp

Where to place `getinfo` is a difficult issue
as it shows information from the wallet, net and
block chain. However, I moved it out of rpcwallet
as the command needs also to be available without
wallet.
Delimit code with #ifdef ENABLE_WALLET

Delimit all code that uses the wallet functions
in implementation files that conditionally use the wallet.
Move CAddrDB frrom db to net

This was a leftover from the times in which
peers.dat depended in BDB.

Other functions in db.cpp still depend on BerkelyDB,
to be able to compile without BDB this (small)
functionality needs to be moved to another file.
Add --disable-wallet option to build system

Make it possible to build Bitcoin without wallet
(and thus without BDB) so that it only functions as node.
Update build-unix.md to mention --disable-wallet

Mention the new --disable-wallet mode.
Also, correct the BDB entry in the dependencies table.
Move CCryptoKeyStore to crypter.cpp

This breaks the dependency on crypter for disable-wallet builds.
Split off rpc_wallet_tests

Split wallet tests from other RPC tests.
Now no #ifdef ENABLE_WALLET are needed anymore in either file.