Extracted _handle_incoming
Moved LineBuffer and DecodingLineBuffer to buffer class.
Extracted _handle_line. Use LineBuffer to buffer input.
Disconnect exception is internal
Fix codes
Use partition for parsing the command
Removed null logic branches
Refactor to only check 'nick in use' once
Use list comprehension rather than nested for loops
Fix bug in handle now that it doesn't return True/False
The buffer should exist across read operations
Extract message sending (ensuring that \r\n is transmitted in all cases).
Clean up error handling
parse params once
Moved name->code lookup to a classmethod on IRCError
No need to initialize in Python
Removed excess paranthesis
Use NickMask class for constructing the client_ident
Use partition to simplify logic
Implemented TODO in privmsg