Fix fundamental flaw in how Textual handles incoming data.

Textual was converting incoming data as soon as it comes it using the
configured encoding
into a normal string. However, what we failed to remember when
designing this new system
was that socket input can contain multiple lines, consisting of
multiple encodings.

The socket reader has been fixed to first chop up input into their
individual lines BEFORE
converting to the common encoding. That way if we convert a string that
is Latin-1 based
it does not corrupt the UTF-8 characters of another line that may
follow.

Fuck this bug was hard to find… this is a good example of a schrödinbug