[core] improve rawlog

Improve the raw connection log to ease debugging by indicating which lines are line we got, and which are lines we sent
[core] improve ping and timeout handling

We should reset the timer on every recived message, because if we got a message the connection is working.
Also, 60s is too low, so I doubled it.
Some servers send pings in much larger intervals, so we should send pings ourselves if we didn't recive anything in a while
[core, reload] Sove long-standing error where function names in different modules could conflict.

Our issue number for this is #258. myano also has it in his as #45.
[core] undo a minor mistake from a6d44eb
[core] Solve issue where reloading module caused duplicate calls

Functions were not replacing their old versions when reloaded, due to the
previous fix to them replacing other functions with the same name. Now,
the key is module_name.function_name, which should avoid both problems.
[url] Remove unneeded unicode en/decoding
[bugzilla] Enable callback for .title
[web] Return unicode from web.get and web.post
[tools] Add ~^ equivalency to Nick class

Also correct the RFC citation in the documentation therefor
This obviates the useful parts of pull request #260
[Nick] fixed _lower(self)
Merge pull request #264 from firerogue/master

fix Nick._lower(self)
[web] Add argument previously omitted

Apparenly I don't know what testing is.
Closes issue #266
[core] Allow configuring bot homedir and bot pid_dir

This commit fixes #261
New optional config keys introduced under the core section:
 homedir	defaults to ~/.willie if not specified
 pid_dir	defaults to homedir if not specified

These keys shouldn't be part of the interactive setup, but they should be documented

Changes were made to the way pid files are named: they are no longer created
as hidden files.
[core] Add systemd service file and other default config files for distros

See contrib/README for more information.
Also modified willie.py to support a new config key in [core]:
not_configured will cause the bot to refuse running if set to true.
This is useful to force users to configure the bot before trying to run it as the config wizard is not ideal for willie running as a service.

Issue #262
Merge branch 'master' into tester