Improve the detection on invalid cases of switch-on
With a simple test case:
```yaml
meta:
  id: test
  file-extension: test
  endian: le

seq:
  - id: header
    type: u4
#    enum: header_type
  - id: body
    type:
      switch-on: header
      cases:
        'header_type::one': foo

types:
  foo:
    seq:
      - id: text
        contents: 'FOO'

enums:
  header_type:
    1: one
```
Right here I pretend to be missing an "enum: header_type" in the header field. Kaitai would produce a cryptic error message like:
```
Parse error: undefined
Call stack: undefined io.kaitai.struct.format.YAMLParseException: /seq/1/type/cases/EnumByLabel(identifier(header_type),identifier(one),typeId(false,List(),false)): can't compare IntMultiType(false,Width4,Some(LittleEndian)) and EnumType(List(header_type),CalcIntType)
```
Right here the error is clear: you didn't specify a enum to use with header field. And Kaitai clearly knows your intention: you're finding an enum value to match with this field. But it mysteriously failed with a message whose intention is unclear. I would like to know the root cause of this error message, and whether there could be a proper fix for similarly triggered errors.