Bug fix of potentially dangerous "head" call.

Code to ensure the call to head is done safely when the stack is
empty.
Removing block batch option in the SPVNode and default to 500 blocks
Bug fix: Failure handling in P2SH script decoding

Preventing a failure to decode from crashing the application.
Merge pull request #122 from plaprade/master

Removing block batch option in the SPVNode and default to 500 blocks
Merge pull request #123 from lornap/fixDangerousHead

Bug fix of potentially dangerous "head" call.
Merge pull request #124 from lornap/fixDangerousDecode

Bug fix: Failure handling in P2SH script decoding
Making output an instance of Ord so we can sort and check for duplicates.
Some initial validation code.
Moved the script parser from Script/Tests.hs to a general utility file since it will be useful for other tests.
tx_(in)valid.json test files from Bitcoin Core.
Adding validation tests to cabal file.
Changing test file slightly to deal with the 'NONE' flag.  Eventually should make the flag parser more robust.
Some initial code for blockchain data requests.
New transaction validation that checks all inputs.
Validation tests.
Added to main tests.
Added required things to cabal file.
Added some documentation to tx validation.
Using standard null instead of isEmpty.
Support for checking coinbase transactions.  Should move the FromJSON instance of CoinbaseTx to Transactions.hs where Tx instance is.