CAddrMan: stochastic address manager

Design goals:
 * Only keep a limited number of addresses around, so that addr.dat does not grow without bound.
 * Keep the address tables in-memory, and occasionally write the table to addr.dat.
 * Make sure no (localized) attacker can fill the entire table with his nodes/addresses.

See comments in addrman.h for more detailed information.
When disconnecting a node, clear the received buffer so that we do
not process any already received messages.

The primary reason to do this is if a node spams hundreds of messages
and we ban them, we don't want to continue processing the rest of it.
Limit getheaders to a hard 2000.

Previously getheaders would return any number of headers up to
2000 + the distance the locator parameter was back (which is up to
~ the number of items in the locator ^ 2).

The only client I was able to find which actually handles the headers
message is BitcoinJ, and it clearly expects no more than 2000 headers
See:
http://code.google.com/p/bitcoinj/source/browse/core/src/main/java/com/google/bitcoin/core/HeadersMessage.java#35

Additionally, the wiki clearly states that getheaders will only ever
return 2000 headers: https://en.bitcoin.it/wiki/Network#Messages
updated english language source file via lupdate
remove bitcoin_cs_CZ from bitcoin.qrc and delete bitcoin_cs_CZ.ts
Speed up block downloading
Prevent stuck block download in large reorganisations

In cases of very large reorganisations (hundreds of blocks), a situation
may appear where an 'inv' is sent as response to a 'getblocks', but the
last block mentioned in the inv is already known to the receiver node.
However, the supplying node uses a request for this last block as a
trigger to send the rest of the inv blocks. If it never comes, the block
chain download is stuck.

This commit makes the receiver node always request the last inv'ed block,
even if it is already known, to prevent this problem.
Merge pull request #954 from Diapolo/master

language updates for source file bitcoin_en.ts + remove cs_CZ (issue #958)
Correct date
Merge pull request #967 from fanquake/patch-1

Correct date
More debug output for failed reorganizations
Merge pull request #965 from khorben/master

The generic UNIX Makefile builds with lots of warnings
updated translation process documentation
Merge pull request #968 from Diapolo/doc-update

updated translation process documentation
Merge pull request #948 from sipa/unstuck

Prevent stuck block download in large reorganisations
Merge pull request #947 from ali1234/master

When disconnecting a node, the receive buffer should be cleared
replace call to PrintConsole with call to error()

As these are equivalent functions, this cleans up the source a bit.
Also remove PrintConsole() as this was the only use.
Remove -bip16 and -paytoscripthashtime command-line arguments
Fix warning about deprecated unescaped backslash
Add -checklevel and improve -checkblocks

-checkblocks now takes a numeric argument: the number of blocks that must
be verified at the end of the chain. Default is 2500, and 0 means all
blocks.

-checklevel specifies how thorough the verification must be:
0: only check whether the block exists on disk
1: verify block validity (default)
2: verify transaction index validity
3: check transaction hashes
4: check whether spent txouts were spent within the main chain
5: check whether all prevouts are marked spent
6: check whether spent txouts were spent by a valid transaction that consumes them