Merge pull request #2 from lornap/full-script

OP_CODESEPARATOR and OP_CHECK(MULTI)SIG logic
Removed instructions from ProgramState and simplified evaluation code to be more canonical using mapM_
Re-write of evalScript to separately run the two scripts, sharing only the stacks.
Some clean up to get rid of warnings.
Added verifySpend function as a wrapper to run on Tx and input index.
Separated the condStack in to a separate StateT transformer.

This purpose of this is type safety.  Now, operations cannot be run
unless they pass through conditinalEval first.

Also, this make sense structually to seperate the data with which OPs
compute and the IfStack that defines program flow.
Removed trace(M) and dumpHex which duplicates the functionality of
bsToHex.