Add script test to prove that OP_0 evaluates as the empty vector, rather than [0]. Also adds debug output in case an script_invalid.json test fails.
Remove incorrect execution of OP_0. That code was never reached, because OP_0 is not an opcode in terms of chunk.isOpCode()). However, it lead to believe that OP_0 pushes the vector [0], rather than correctly the empty vector to the stack.

Because the code was never executed, this bug could never trigger a test. Afaict, script.cpp does not have the corresponding case in its switch block.
Wallet: disallow adding of keys that don't match the wallet's encryption state.
Include the hash160 of addresses in Wallet.toString(). This makes it easier to debug wallets just from the dump.
ECKey: preserve compression state when deserializing from ASN.1.

Resolves issue 528.
Keep opcode in ScriptChunk representation of scripts. The goal is to know how data was pushed and be able to apply malleability rules. All unit-tests pass.
Include PUSHDATA opcode in Script.toString(). Also, smallNums are printed in their decoded form.