Fix unpacker allocation when data available

- The dataAvailable slot reads new data from the device and
  passes it on to the msgpack unpacker. The previous implementation
  failed to reallocate the buffer when needed causing the read to
  block if the buffer was too small
- Removed the step allocation size, now hardcoded as 8k
- We now only reserve more buffer space when the buffer is empty