Make RPC password resistant to timing attacks

Fixes issue#2838; this is a tweaked version of pull#2845 that
should not leak the length of the password and is more generic,
in case we run into other situations where we need
timing-attack-resistant comparisons.
Revert "Truncate oversize 'tx' messages before relaying/storing."

This reverts commit 7cc960f8f57e7fe90ee7aa0ccd3e3c6c89ec5a25.
Simplify storage of orphan transactions

Orphan transactions were stored as a CDataStream pointer;
this changes the mapOrphanTransactions data structures to
store orphans as a CTransaction.

This also fixes CVE-2013-4627 by always re-serializing
transactions before relaying them.
Remove inline LevelDB to prepare for git-subtree version
Squashed 'src/leveldb/' content from commit be1b0ff

git-subtree-dir: src/leveldb
git-subtree-split: be1b0ff1fcd6ad820a7fd111ac671fb51cc68001
Merge commit 'a41a0ad07bdc1f6fd67abcad1d6ce1bc74c1bf76' as 'src/leveldb'
Performance optimization for bloom filters.

This reduces a peer's ability to attack network resources by
 using a full bloom filter, but without reducing the usability
 of bloom filters.  It sets a default match everything filter
 for peers and it generalizes a prior optimization to
 cover more cases.
Fix non-standard disconnected transactions causing mempool orphans

Conflicts:
	src/main.cpp
Update the bloom state on the real object, not the temporary one.

This resulted in just passing all transactions to filtered wallets
which worked surprisingly well, except where it didn't.
Litecoin: Checkpoint at block 409004