Don't throw KeyError if we can't format a hostmask for a nickname.

Some IRCds send weird commands at odd times (e.g. PING before NICK),
and sometimes user information isn't always available (e.g. out of channel
messages).
Run on_connect tasks when code 422 is received.

Code 422 is sent if there is no MOTD set on the server but the connection
completes.
Fix typo (_construct_message -> _create_message).
Merge pull request #3 from rfw/master

Fix error behaviour and edge cases.