Signaling errors in switch constructs
The switch type operation provides a default case that falls back to *raw bytes* if none of the cases match. While this is quite useful in combination with a `size` attribute to skip over unknown message types during development, a complete definition of a binary structure might want to signal an error for unknown types instead.

## Workaround
Currently, an error can be enforced by adding an *error type* whose contents are unlikely to be encountered in real world situations.
```yaml
  message:
    seq:
      - id: rec_type
        type: u4
      - id: rec_len
        type: u4
      - id: content
        type:
          switch-on: rec_type
          cases:
             1: handshake
             ...
             _: unknown_type_error
  unknown_type_error:
    seq:
      - id: message
        contents: "Unknown record type"
```

## Possible solutions:
  * provide a designated error type `_error`
```yaml
    type:
      switch-on: rec_type
      cases:
        1: rec_type_1
        2: rec_type_2
        _: _error
```
 Combined with #192, one could specify an error message as well
```yaml
    type:
      switch-on: rec_type
      cases:
        1: rec_type_1
        2: rec_type_2
        _: _error("Unknown record type")
```
 * allow for an `error` attribute (could also be called `final` or maybe `restricted`) that can be `true` or might specify an error message
```yaml
    type:
      switch-on: rec_type
      error: "Unknown record type"
      cases:
        1: rec_type_1
        2: rec_type_2
```