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
improve encodeInt decodeInt

now matches the script suite format and is self-consistent
script: fix operand order

not very intuitive but correct, will change in the future
Script: test suite of valid tests works!

OP_CHECKMULTISIG implementation still unfinished though
Merge branch 'sha1' into full-script