Fix up Client::disconnect to use send() and flushSendQueue()

Also overloaded it a couple of times for utility.
Only process messages if the buffer changes

If the buffer doesn't get written to then either there's nothing to
read from it or the buffer will still be in a previous unparsable state.
Merge branch 'master' into disconnect-improvements

Conflicts:
	server/lib/Client.cpp
Merge pull request #25 from Holiverh/disconnect-improvements

Minor tweaks for Client::disconnect