Unexpected alignment when using boolean `b1`
I discovered some unexpected result when trying to parse data that has booleans. Not sure whether it **is** a bug, but it feels like one, so putting it up here for discussion. 

# Steps to reproduce:
Given the attached grammar (see below)
1. Parse the following data: `bytearray([0x69, 0x01, 0x01, 0x5F, 0x00])` (see gist at the end for a python test fixture)

## Expected behaviour
Parsing the data should produce an object structure that essentially contains the following data
```python
[
    {'tag': 105, 'multi_byte_len_flag': False, 'length': 1, 'body': True},
    {'tag': 95, 'multi_byte_len_flag': False, 'length': 0, 'body': None}
]
```

## Actual behaviour
Parsing the data throws the folloowing error: `EOFError: requested 2 bytes, but got only 0 bytes`

# Further notes
Upon inspection of the generated code it appears as if there might be a alignment instruction missing after reading the body data of elements with `tag==105` 

https://gist.github.com/StefanD986/e8d7ca9814a070d7bba74044a7d28ae7#file-tlv_debugging-py-L45

I am following the kaitai documentation, that suggests to use the 1 bit `b1` type for booleans. However I also argue that only evaluating the lowest bit to decide whether the value is `True` or `False` is not enough, since many languages interprete anyting non-zero as *truthy*.

# Attachments

```yaml
meta:
  id: tlv_debugging
  file-extension: hex
  endian: le
  encoding: ascii
seq:
  - id: file_hdr0
    type: header_obj
    repeat: until
    repeat-until: _.length == 0
types:
  header_obj:
    seq:
      - id: tag
        type: u1
      - id: multi_byte_len_flag
        type: b1
      - id: length
        type: b7
      - id: body
        size: length
        type:
          switch-on: tag
          cases:
            95:  tb
            105: b1
    types:
      tb: 
        seq:
          - id: no_value
            size: 0

```

Minmal example code can also be found here: https://gist.github.com/StefanD986/e8d7ca9814a070d7bba74044a7d28ae7