Move VerifySignature to main
Add CScriptCheck: a closure representing a script check
Remove CheckSig_mode and move logic out of CheckInputs()
Parallelize script verification

* During block verification (when parallelism is requested), script
  check actions are stored instead of being executed immediately.
* After every processed transactions, its signature actions are
  pushed to a CScriptCheckQueue, which maintains a queue and some
  synchronization mechanism.
* Two or more threads (if enabled) start processing elements from
  this queue,
* When the block connection code is finished processing transactions,
  it joins the worker pool until the queue is empty.

As cs_main is held the entire time, and all verification must be
finished before the block continues processing, this does not reach
the best possible performance. It is a less drastic change than
some more advanced mechanisms (like doing verification out-of-band
entirely, and rolling back blocks when a failure is detected).

The -par=N flag controls the number of threads (1-16). 0 means auto,
and is the default.
Remove contention on signature cache during block validation

Since block validation happens in parallel, multiple threads may be
accessing the signature cache simultaneously. To prevent contention:
* Turn the signature cache lock into a shared mutex
* Make reading from the cache only acquire a shared lock
* Let block validations not store their results in the cache
update bitcoinstrings.cpp and bitcoin_en.ts (2013-01-14)
Fix clang warnings
Add const versions of base_uint.end()/begin(), make size() const.
Add MurmurHash3 implementation to hash.h/add hash.cpp.
Add a CBloomFilter class for use as a transaction filter.
Bump PROTOCOL_VERSION for filter messages.
Add a filter field in CNode, add filterload+filteradd+filterclear
Replace RelayMessage with RelayTransaction.
Automatically add any matching outputs to a filter during matching.
Add a CBlock.GetBlockHeader
Add a CMerkleBlock to store merkle branches of filtered txes.
Add test cases for CMerkleBlock and CBloomFilter.
Relay CMerkleBlocks when asked for MSG_FILTERED_BLOCK
Let a node opt out of tx invs before we get a their bloom filter

Note that the default value for fRelayTxes is false, meaning we
now no longer relay tx inv messages before receiving the remote
peer's version message.
Add a nTweak to bloom filters to tweak the seed.