Fix bad character encoding using Socket.py and Python 3

When using the socket driver and Python 3, messages containing e.g. umlauts (äüö) from IRC clients that do not use UTF-8 but anything else (ISO-8859-1, etc.) as character encoding will lead to wrong characters in modules like ChannelLogger.

This pull requests adds usage of the chardet library (https://github.com/erikrose/chardet) to guess the correct encoding. Chardet is completely optional and is transparently used if installed.