protocol: add missing script opcodes to data type
protocol: instance Binary ScriptOp 'get' methods
protocol: instance Binary ScriptOp 'put' methods
Merge remote-tracking branch 'upstream/master' into full-script

Conflicts:
	Network/Haskoin/Script/Types.hs
Types.hs: add missing types
script: add Evaluator, tests

tests fail currently
script: add missing opcodes to Arbitrary ScriptOp
script: rename, implement encode/decode methods

Basic (internally consistent) encoding and decoding of ints and bool. Needs to
be cross-verified with C++ impl.
Merge remote-tracking branch 'upstream/master' into full-script

Conflicts:
	Network/Haskoin/Script/Types.hs
script: cleanup, add reserved opcodes
script: add BitcoinQt test suite runner
script tests: fix test case labels
script: OP_PUBKEY, OP_PUBKEYHASH are placeholders

these opcodes don't actually push anything, they are only used in a bitcoind
templating routine:
https://github.com/bitcoin/bitcoin/blob/0.9.2/src/script.cpp#L1198

they  behave like OP_INVALIDOPCODE otherwise:
https://github.com/bitcoin/bitcoin/blob/0.9.2/src/test/data/script_valid.json#L272
script: finally a proper implementation of OP_IF

passes the test suite part concerned with OP_IF
script: make evalAll prettier
script: extend test cases
Signature decoding tests

Added tests of Signature decoding to illustrate a problem decoding
a signature that exists in the block chain.  The signature has strange
DER lengths.
Bug fix:  Incorrectly reporting the DER length in
the error message
Removed code assertions on DER size when parsing signatures.

This is required to sucessfully verify block 124276, transaction index 3
( fb0a1d8d34fa5537e461ac384bac761125e1bfa7fec286fa72511240fa66864d )
input 0.
improve encodeInt decodeInt

now matches the script suite format and is self-consistent