Make output of gettxout RPC more consistent

* Report "value" in BTC, rather than "amount" in satoshis
* Use ScriptPubKeyToJSON to report script data
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)
Merge pull request #2181 from Diapolo/translations

update bitcoinstrings.cpp and bitcoin_en.ts (2013-01-14)
Merge pull request #1795 from TheBlueMatt/bloom

Bloom filters
Merge pull request #2060 from sipa/parallel

Parallel script verification
Merge pull request #2149 from sipa/fixtxoutrpc

Make output of gettxout RPC more consistent
Send transactions after a CMerkleBlock when asked for it in an inv.

This actually simplifies some SPV code, as they can keep track of
a filtered block and its txn before accepting both in one step.
The previous argument was that SPV nodes should handle the txn the
same as any other free txn and then mark them as connected to a
block when they get the filtered block itself.  However, it now
appears that SPV nodes will need to put in more effort to verify
loose txn than they would to verify txn in blocks, thus making it
more approriate to send the txn after the filtered block.
Replace 520 constant with MAX_SCRIPT_ELEMENT_SIZE