Add support for a streaming API (as in JSON or XML streaming parsers)
I'm trying to write a parser for [the Postgres protocol](https://www.postgresql.org/docs/10/static/protocol.html).

The biggest problem comes from a combination of two things:
1. Postgres follows TLV for every packet *except* for the first packet which the client sends to the server. Those should be parsed differently.

    I would like to be able to do something like:

    ```ksy
    seq:
      - id: startup
        type: startup_message
      - id: messages
        type: message
        repeat: eos
    ```

    However,
2. Kaitai has no support for parsing new messages as they come in.

So instead, I have to write special code in my application. I have do to something like:

```python
first_message = True
def on_message(message):
  global first_message
  if first_message:
    first_message = False
    return pgprotocol_initial.Pgprotocol_initial(message.content)
 return pgprotocol_subsequent.Pgprotocol_subsequent(message.content)
```

What I would much prefer is to be able to write something like:

```python
kaitai_parser = pgprotocol.StreamingParser(stream)
def on_message(stream, kaitai_parser, message):
  stream.write(message.content)
  if kaitai_parser.has_next():
    return kaitai_parser.next()
```

It's not a problem that I have, but a streaming parser would also reduce memory requirements when parsing large files, which I'm sure other people would appreciate.