Support back-references
I'm trying this template:

```yaml
meta:
  id: fibrechannel
  file-extension: fc
  license: LGPL-3.0-or-later
  xref:
    doc: FC-FS-4
    incits: 488
  endian: be
seq:
  - id: r_ctl
    type: routing_control
    size: 1
    doc: |
      Example Documentation of R_CTL
  - id: destination
    type: address
  - id: cs_ctl
    type: u1
    if: f_ctl.csctl_enabled
    doc: |
      This field is only present if CSCtl enabled
  - id: priority
    type: u1
    if: !f_ctl.csctl_enabled
    doc: |
      This field is only present if !CSCtl enabled
  - id: source
    type: address
  - id: type
    type: u1
    enum: fctype_enum
  - id: f_ctl
    type: frame_control
    size: 3
enums:
  fctype_enum:
    0x00: bls
    0x01: els
    0x04: llcsnap
    0x05: ip
    0x08: fcp
    0x09: gpp
    0x1b: sb_to_cu     # FICON / FC-SB-3: Control Unit -> Channel
    0x1c: sb_from_cu   # Channel -> Control Unit
    0x20: fcct
    0x22: swils
    0x23: al
    0x24: snmp
    0x28: nvme
    0xee: spinfab
    0xef: diag

types:
  wwn:
    seq:
      - id: data
        size: 8
  address:
    seq:
      - id: data
        size: 3
  routing_control:
    seq:
      - id: placeholder
        size: 1
  frame_control:
    seq:
      - id: csctl_enabled
        type: b1
```

I'm getting:

```
Parse error: undefined
Call stack: undefined TypeError: Cannot read property 'csctlEnabled' of undefined
```

If I move f_ctl to above the cs_ctl stuff it works, so it seems that the fact that the structure that decides whether or not cs_ctl or priority is set is *after* these fields breaks Kaitai.

Am I missing something or is this not supported?