Updating the RSS module to work with ZNC partyline

ZNC party line channels start with `~` characters (e.g., `~#bot`). This commit allows Willie to work with ZNC party line channels that contain this character.
[db] Add postgres support

 - use psycopg2
 - see #451
fix documentation
Merge branch 'master' into postgres-support

* master: (75 commits)
  [units] Fix conversion between meters and yards.
  [units] Fix incompatibilities with Python 3.
  [dice] Fix incompatibilities with Python 3.
  can't install pyenchant from PyPI right now
  We only need to install enchant from apt-get
  [web]Fixed NameError.
  [weather]Fixed Can't find location bug with known locations.
  Add -git to version number
  Do dependencies properly. Now version 4.2.1
  [__init__] Add -git to version number
  [__init__] Version number to 4.2.0
  Improve code for translation module
  Clarify reasons for dev-requirements.txt
  Tell Travis not to init submodules
  Fix unicode issues with tests
  Change submodule URL to use HTTPS rather than SSH
  Add .travis.yml file for Travis CI and Coveralls.io integration
  Add dev-requirements.txt file, documenting requirements to run tests
  [tests] Ignore main willie.py for now
  Strip timezone... that should close 463
  ...

Conflicts:
	willie/db.py
Clean up redundant db config code
PEP8 fixes
Merge branch 'master' into postgres-support

* master: (30 commits)
  Add an `.is_nick()` function to the Nick class
  Remove errant prints
  Rework track_modes
  [core] Check if running with root privileges
  Added EFL copyright header
  [ip] Fix ip-database downloading in Python 3.
  Iterate over a copy of bot.privileges instead of the real thing
  Handle non-ascii IRC messages
  channel logs don't need to be webserver accessible
  check for configuration problems on load
  only log user nick changes to the channels that the user is present in
  Only log user quit messages to the channels that the user was present in
  Lock log files before appending, to avoid race condition
  Mark chanlogs rules as unblockable
  Reduce code duplication for chanlogs
  Added chanlogs module
  [test_tools] Fix incompatibility with Python 3.
  [test_tools] Make a home dir for willie if the default one doesn't exist.
  [ip] Fix unit test to handle downloading database notification.
  [test_tools] Add capability to ignore lines of output.
  ...
use single quotes instead of double quotes in sql statements
Added option for SASL username for cases when the nick isn't the same
as the SASL username
Merge pull request #1 from embolalia/master

Pull to my fork
[core] Some minor fixes to make PEP8 happier

It kinda makes stuff more readable, unlike some other PEP8 warnings
[core] don't fire loop protection if last message was more than 5 minutes ago

Many people complained that loop protection was too strict, as it considered
same message repeated after several hours as "loop". This change makes loop
protection less strict by checking the last message time stamp. If last message
was sent more than 5 minutes ago, it won't treat the situation as a loop.

I also cleaned the loop protection code, and added more comments to explain this
slightly cryptic portion of our bot's core.
[test] Actually blacklist ipython.py

Apparently we need full relative path, and not just filename. Makes sense.
[core] Make WillieWrapper a bit more ipython friendly

This change will make tab completion in ipython for WillieWrapper (usually named
`bot` in module context) better by showing properties of the wrapped bot and not
just properties directly in the wrapper class.
[coretasks] If an untracked user left a channel, don't complain

This is related to issue #365
Altough I have not managed to reproduce the issue myself, wrapping the `del`
call in a try-except block is something to do for KICK already. It makes sense
to do it for PART too.
Merge pull request #424 from mtdowling/master

Updating the RSS module to work with ZNC partyline
[tools] use unicode_literals

This fixes an issue which prevented usage of unicode strings in commands()

Fixes #517
[ipython] Make ipython work for Python 3 as well

Account for an ipython3 quirk that makes it require unwrapped stdout/stderr for
the import as well.
[core] Make sure callables without rate limit will never get rate limited

Fixes #239
If func.rate is zero or None (as None > 0 == False), don't bother going into
the rate limiting code. This prevents the race condition described by @Venti-
in issue #239
[coretasks] All privilege handling methods are now unthreaded and high priority

For reasoning see issue #293
This should theoretically eliminate race-condition-related problems in
privilege handling.

See also issue #365 and issue #519