More test cases for transaction scripts

These are some edge cases that I have detected using QuickCheck in the Haskoin project which are not covered by the existing test suite. 

In `script_valid.json`:

1. All bytes of a boolean constant are significant, not only the last one. I had a dumb bug where I only checked the last byte, but it passed the test suite.

2. Also casting the stack value to a 64 bit int works *most* of the time, unless the value overflows to 0. Added a test for that. 

3. `SIZE` does not consume the argument. Many commands consume the input argument, some don't, I think generally there could be more test coverage of that. Maybe build a test that puts a bunch of constants on the stack, execute a bunch of operations (for which the test makes sense) and test the value and stack depth in the end.

In `script_invalid.json`: 

1. `BOOLAND` + `BOOLOR` have a slightly different conception of boolean values: these functions cast inputs to `int64` and compare against zero, so they must fail for five-byte stack values. 

2. Limits for `CHECKMULTISIG` were not tested:  `(nKeys < 20)` and `(nSigs <= nKeys)`