Fixes error
Only keep setBlockIndexValid entries that are possible improvements
Reject transactions with excessive numbers of sigops
Remove tx from AlreadyAskedFor list once we receive it, not when we process it.
additional test for OP_SIZE in script_valid.json
script tests: BOOLAND, BOOLOR decode to integer

unlike other boolean checks, arguments >5 bytes invalidate the script
script tests: values that overflow to 0 are true
script tests: value with trailing 0x00 is true
script test: test case for 5-byte bools
script tests: add tests for CHECKMULTISIG limits
CBloomFilter::clear() method
Rework block processing benchmark code

* Replace -benchmark (and the related fBenchmark) with a regular debug option, -debug=bench.
* Increase coverage and granularity of individual block processing steps.
* Add cummulative times.
Fixed a bug with index bounds checking
Fix minor bug which only affected log messages.
Update coding style and add .clang-format
Consolidate CTransaction hex encode/decode into core_io.h, core_{read,write}.cpp
Move ParseScript() helper, becoming accessible outside src/test/
core_read's ParseScript(): minor cleanups

- use .empty() rather than .size() == 0
- use a const_iterator rather than BOOST_FOREACH
- validate iterators before creating a string from them
bitcoin-cli, rpcrawtransaction: harmonize "{" styling
Add "bitcoin-tx" command line utility and supporting modules.

This is a simple utility that provides command line manipulation of
a hex-encoded TX. The utility takes a hex string on the command line
as input, performs zero or more mutations, and outputs a hex string
to standard output.

This utility is also an intentional exercise of the "bitcoin library"
concept. It is designed to require minimal libraries, and works
entirely without need for any RPC or P2P communication.

See "bitcoin-tx --help" for command and options summary.