Compiler: add custom byte- and bit- integers
After reading #121 and getting totally lost in it, I think that Kaitai should do something similar to Construct BytesInteger and BitsInteger classes. That is, integer types other than basic ones (1-2-4-8 bytes) should be mapped to KaitaiStream method that handles arbitrary sizes, arbitrary endianess:
```
u3  (24-bit)   -->  KaitaiStream._io.read_integer(3, signed=False, swapped=False)
u16 (128-bit)  -->  KaitaiStream._io.read_integer(16, signed=False, swapped=False)
```
Bit- integers are a bit problematic when it comes to little-endianness, but aside of that its also simple.
```
b3  (3-bit)   -->  KaitaiStream._io.read_bits_integer(3, signed=False, swapped=False)
b16 (16-bit)  -->  KaitaiStream._io.read_bits_integer(16, signed=False, swapped=False)
```

EDIT: What is `read_bits_int()` ....? :slightly_frowning_face: 
https://github.com/arekbulski/kaitai_struct_python_runtime/blob/master/kaitaistruct.py#L210
