Fixed read/write conflicts for download.

No rename/delete possible by same/other client(s) when downloading the
same file at that time.
Added socket-close on client-shutdown - Added some error messages.

Server now closes the client connection when the client disconnects. The
ClientConnection-object (including sockets + streams) then is ready to
be disposed by the garbage collector.
Added start-parameter validation (server + client) - Worked off some TODOs.