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