[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
[units] Initial work for mass conversion

This needs attention for someone who understands the imperial system.
[translate] Fix unicode in translate.py

web returns a bytestring, we needed a unicodestring
[translate] Add testcase for unicode input
[translate] minor code style fixes

nitpicking all around (aka PEP8)
[units] Improve output for non-sensible mass units
[units]Add millimeter support (input only)
[units] Add milimeters for display as well
Merge branch 'master' into postgres-support

* master: (34 commits)
  [units] Add milimeters for display as well
  [units]Add millimeter support (input only)
  [units] Improve output for non-sensible mass units
  [translate] minor code style fixes
  [translate] Add testcase for unicode input
  [translate] Fix unicode in translate.py
  [units] Initial work for mass conversion
  [core] Fix typo in WillieWrapper that made dir() return an incomplete list
  [chanlogs] Don't encode to utf-8 on Python 3
  [coretasks] All privilege handling methods are now unthreaded and high priority
  [core] Make sure callables without rate limit will never get rate limited
  [ipython] Make ipython work for Python 3 as well
  [tools] use unicode_literals
  [coretasks] If an untracked user left a channel, don't complain
  [core] Make WillieWrapper a bit more ipython friendly
  [test] Actually blacklist ipython.py
  [core] don't fire loop protection if last message was more than 5 minutes ago
  [core] Some minor fixes to make PEP8 happier
  [tests] Ignore ipython.py
  [core] Fix typo in module shutdown method handling
  ...
fix python3 syntax error
[reload] Minor code style improvements

Also a nicer error message for the reload function
[unicode_info] Fix unicode error introduced in 6a0d18ef

This fix only affects Python 2.7, as unicode handling is much better in 3.x
[unicode_info] Add tests