Better error handling

Before, an erroneous close on the server side
would cause a zombie connection.
better error handling on yenc

Now the yenc package should pass errors along unmodified if they were
not caused by errors in yenc decoding.

This also makes handling errors for connections a lot easier