[BUGFIX] Streams are blocking

Network streams should not block, as otherwise deadlocks become possible
(packets not received as the buffer is not full).
[FEATURE] Disable autorun in debug sessions

When further actions should be triggered for a new debug session, the
session should only be started after these operations have finished. For
synchronous operations, this is no problem, but e.g. asynchronous calls
to the debugger engine pose a problem.

This is mitigated with this commit by making the autorun optional. To
disable autorun, call `disableAutorun()` on the debug session object.
Keep in mind that you have to call `run()` when the session is
completely initialized.
[BUGFIX] Decoding fails if packet length at end of window

If a packet ends in the middle of a packet length (e.g. 2|02), this was
not detected. Therefore, parsing the new message failed.

This is now fixed by first reading all contents and then decoding the
data as one large string. We assume that the data is all ready at the
socket, otherwise decoding might still fail. A fix for this is however
not so easy, therefore we don’t implement it with this commit.
Merge branch 'master'
Merge remote-tracking branch 'origin/master'