[Wallet] Improve ReorderTransactions(..)
Improve readability of CAddrInfo::IsTerrible

- Replaced 86400 with 24*60*60
- Remove references to specific timespans in comments

Github-Pull: #4724

Conflicts:
	src/addrman.cpp
Clarify 'compressed nor uncompressed' error message
netbase: Use .data() instead of .c_str() on binary string

`.c_str()` is only guaranteed to return the data up to the first NUL
character.
Avoid repeated lookups in mapOrphanTransactions and mapOrphanTransactionsByPrev
Fix crashing bug caused by orphan(s) with duplicate prevout.hash
don't use memset() in privacy/security relevant code parts

As memset() can be optimized out by a compiler it should not be used in
privacy/security relevant code parts. OpenSSL provides the safe
OPENSSL_cleanse() function in crypto.h, which perfectly does the job of
clean and overwrite data.

For details see: http://www.viva64.com/en/b/0178/

- change memset() to OPENSSL_cleanse() where appropriate
- change a hard-coded number from netbase.cpp into a sizeof()

Conflicts:
	src/crypter.cpp
	src/crypter.h
make CBase58Data class use zero_after_free_allocator

- this way there is no need for an explicit destructor, who does the same
  thing anyway
move start of miner out of net.cpp's StartNode()

The internal miner is closely bound to the wallet engine,
not the blockchain engine.
Split off hash.h from util.h
Conflicts:
	src/hash.h
	src/script.h