C++ codegen: Incorrect code when using "size" with "switch-on", having no explicit default case
This code:

```ksy
seq:
- id: v1
  type: u1
- id: v2
  size: 4
  type:
    switch-on: v1
    cases:
      1: strz
```

Generates something along these lines (slightly simplified):

```cpp
void test_t::_read() {
    m_v1 = m__io->read_u1();
    n_v2 = true;
    switch (v1()) {
        case 1: {
            n_v2 = false;
            m_v2 = kaitai::kstream::bytes_to_str(kaitai::kstream::bytes_terminate(m__io->read_bytes((8 + ((1 == 2)?1:0))), 0, false), std::string("UTF-8"));
            break;
        }
        default: {
            m_raw_v2 = m__io->read_bytes((8 + ((1 == 2)?1:0)));
            break;
        }
    }
}
```

The problem is `m_raw_v2`: It is never declared in the header file, leading to a compile error.

The CppCompiler never learns of this raw type, and therefore doesn't know that it has to generate the property in the class definition.

The culprit is found in `EveryReadIsExpression`, inside `attrSwitchTypeParse()`:

```scala
  (dataType) => if (switchBytesOnlyAsRaw) {
    dataType match {
      case t: BytesType =>
        attrParse2(RawIdentifier(id), dataType, io, extraAttrs, rep, false, defEndian, Some(assignType))
      case _ =>
        attrParse2(id, dataType, io, extraAttrs, rep, false, defEndian, Some(assignType))
    }
```

It generates a RawIdentifier without passing that information on or adding it to the list of attributes. It simply gets forgotten right away. This needs fixing so that the raw attribute is passed to the compiler via `attributeDeclaration`.