Use actually valid transactions for script tests
Add actual signature tests
Grammar fixes in README

Github-Pull: #4956
Fixing out of bounds error in GetKey()
Merge pull request #4962

6f3ae9b Fixing out of bounds error in GetKey() (ENikS)
Merge pull request #4949

c8589bf Add actual signature tests (Pieter Wuille)
76ec867 Use actually valid transactions for script tests (Pieter Wuille)
Do merkle root and txid duplicates check simultaneously

Move the txid duplicates check into BuildMerkleTree, where it can be done
much more efficiently (without needing to build a full txid set to detect
duplicates).

The previous version (using the std::set<uint256> to detect duplicates) was
also slightly too weak. A block mined with actual duplicate transactions
(which is invalid, due to the inputs of the duplicated transactions being
seen as double spends) would trigger the duplicates logic, resulting in the
block not being stored on disk, and rerequested. This change fixes that by
only triggering in the case of duplicated transactions that can actually
result in an identical merkle root.