Silent failure when a field references a subsequent field
(I tried to search for similar issue reports, but failed to find any -- sorry if this is a duplicate.)

I have a `.ksy` file containing the following:
```ksy
...
types:
  fileheader:
    seq:
...
    - id: serial_number
      process: xor(xor_key & 0xff)
      size: 16
    - id: hash
      process: xor(xor_key & 0xff)
      size: 32
    - id: xor_key
      type: u2
...
```
The generated code reads the fields in order (which is not surprising), but it processes `serial_number` when it is read, when `xor_key` is still uninitialized.

I would have expected either that KSC would have issued a warning/error at compile time or that it would have deferred the processing of `serial_number`.  (Replacing the direct reference to the `xor_key` expression with an value instance yields the same result.)  Having it "silently fail" (i.e., produce bad results at runtime) is...disappointing.

Any suggestions on how I should implement this?  (I would expect that I should be able to define an value instance for the serial number, but I don't know how to specify a `process` attribute for an instance, and I don't know how to apply an XOR operator to each byte of a byte array....)

Thanks!
