Pythonize CScript

Makes it possible to do things like:

script = CScript() + OP_HASH160 + scripthash + OP_EQUAL
Add EvalScript() unittests

The tests aren't actually set to fail currently - they just print their
result to stdout.

script_(in)valid.json is from bdd34642dc7e6d5c2d8c7cf6b53e6041b89bf022
Change uint160/uint256 to bytes instances

Probably broke things here, but they'll be fixed as more unittests are
added.
Add CScript.is_valid()
Pythonize CTransaction() and dependencies
Add Serializable base class

Serialization is now done to/from streams, with serialize() and
deserialize() provided by base class to serialize to/from bytes.
Make x() to deal with little-endian hex hashes
Pythonize CBlock and CBlockHeader
Make serialization handle truncated data
Fix most EvalScript() bugs

Almost all script tests are working now
Add CScript.is_push_only()
Add P2SH support to VerifyScript()
Merge upstream RPC code
Implement a number of bitcoin.rpc.Proxy methods
Merge remote-tracking branch 'upstream/master' into pythonize

* upstream/master:
  Fix network magic to be bytes rather than unicode
Add make-bootstrap-rpc.py example
Merge remote-tracking branch 'upstream/master' into pythonize

* upstream/master:
  Make SignatureHash() return 1 correctly; bug-for-bug
Make Serializable.__(n)eq__ use NotImplemented
Improve handling of hex strings

Renamed x() lx() and added separate x()/b2x() functions for going
to/from big-endian data to handle both cases.

Also changed CScript() to display scripts data elements as binary -
closer to the RPC interface.
Fix Py3 incompatibility in CBase58Data