Problem: mshell doesn't use authentication

Solution: use PLAIN authentication, and mshell/mshell credentials.
Selftests were partially commented out
Problem: client does not recover from server restart

Solution: server has to send the right error when getting an
unexpected CONNECTION PING or other command, and not kill the
connection. Client likewise has to handle this error correctly
and reconnect to the server with a CONNECTION OPEN.

Incidentally, added -v option to mshell to allow tracing.

Fixes #42
Merge pull request #43 from hintjens/master

Fixed issue #42 and other related items.