Make non-canonical Script OP_PUSHDATA* non-standard

This tightens up the IsStandard() transaction rules, so that
standard transactions must use the smallest, canonical way
to push arrays onto the execution stack.

For example, putting the array of bytes [0xF1 0xF2] onto the
stack must use the "push the next two bytes" opcode (0x02), and
not OP_PUSHDATA1/2/4.