Improve the channel manager. It now internally stores a network name if you provide one.

Providing a network name means you can use the aliases 'add()' and 'delete()', so you don't constantly have to pass the network name.
self.module_data is now always a list, but empty if there are no settings.
Make the setting for XkcdHyphen optional.
Commands are now sent in lowercase.
duration.py: adds timebeforetimestamp()
So this adds a (rather extensive) weather module.

This module does a lot of things although it only provides one command`
  For starters, it tells you the forecast for a configurable amount of days
  It also notifies you if any alerts are close

Due to my limited amount of knowledge about the weather, and the fact
  the API I was working with made me shrug a little, this module might be
  a little spagetthi-ish. It started with me just wanting to tell the temp
  in fahrenheit/celcius, but the more options I saw become available to me,
  the more I wanted to parse in.

However, this module has inspired a lot of good work and modifications
  on other systems in the bot. And I really wanted to know what the weather
  was in Amsterdam.
PEP8