Add advancePC variable to opcode struct

* Some opcodes should not be incremented by
  size variable in opcode struct. New variable
  called advancePC (which is set to size
  variable by default) is now used to increment
  PC. In rare(?) cases such as opcode 0xcd,
  even though we know the size, we shouldn't
  increment PC because this opcode modifies PC