switch-on support for process
FBX format has a point where the data is either compressed or not, depending on a flag:

```
      - id: encoding
        type: u1
# ...
        process:
          switch-on: encoding
          cases:
            0: xor(0x00) # closest thing we currently have to a no-op
            1: zlib
```

This currently requires introducing an additional structure to hold the alternate compressed structure and proxying all methods on the compressed structure using `instances`.

The other case where this might be useful is describing archive formats where an enum value decides which algorithm to use for decompression, e.g. zip.
