Util: improve bsToHex performance

The old routine is very slow for larger inputs, something O(n^2):

> length $ bsToHex $ BS.pack $ take 3000 (repeat 0x62)
6000
(1.01 secs, 662956664 bytes)

> length $ bsToHex $ BS.pack $ take 6000 (repeat 0x62)
12000
(4.89 secs, 2993737936 bytes)

The new method is considerably faster:

> length $ bsToHex $ BS.pack $ take 6000000 (repeat 0x62)
12000000
(0.72 secs, 653576448 bytes)
Merge pull request #74 from OttoAllmendinger/fix-bsToHex

Util: improve bsToHex performance
Merge pull request #75 from OttoAllmendinger/fix-TestEncodeDecode

Script: OP_PUSHDATA can have zero-length payload
Script Tests: rename dumpError -> dumpExec
Script: Fix OP_SIZE, sort-of-fix boolean functions
script tests: add some new tests

These tests pass in bitcoind but currently fail in Haskoin.

Found with QuickCheck (see haskoin branch rpc-compare)
Script: fix OP_SIZE, boolean handling

test suite passes again, (seeming) parity with bitcoind
Script: use safer decodeInt

While bitcoind happily *encodes* integers into >4 bytes, it never *decodes*
anything that is >4 bytes. So script eval shouldn't have a function that does
that either.

The tests now also reflect these constraints.
Merge branch 'fix-script' into rpc-compare

Conflicts:
	tests/Network/Haskoin/Script/Tests.hs