[remind] Filter empty strings from the message

This fixes a problem with the .in command where not all of the arguments for the
duration get applied.
[calc] Add guards to pow and mul functions to avoid hangs.

- Fixes #538.

- Removed the drivel from calc when exceptions are raised. Printing the actual
  error might not be pretty, but at least it's not completely useless.
Add code for #564 as a new branch
Fix for #560
[calc] Add timeouts and better formatting to calc.

- Added default timeout of 5s to expression evaluator, that will throw
  an error before evaluating the next statement if the timeout has passed.
  This should stop an expression consisting of several long running
  statements from taking too long.

- Calc now uses general number formatting from str.format to print the
  number according to it's magnitude.

- Fixes bug in Python 2 from #538, where long ints are let through by using
  abstract base class numbers.Integral.
Merge pull request #565 from phantium/ticket564

[adminchannel]Check for channel (half-)operator before action
[translate] Fix bug with the $nickname: "foo"? form
[core] JobScheduler now works on Python 3.4

Fixes #571
[ipython] Don't use deprecated IPython.frontend on newer versions of IPython
[tell] Fix Python 3 support

Fixes #562
Merge pull request #567 from phantium/t560

Add fix for ticket #560
[web] Return status when returning headers

Return status as headers['_http_status'] if return_headers is set to True.
I'm using '_http_status' so it won't override any actual HTTP header that might
be present in the response.

This commit might break your modules if you didn't treat the returned headers
as a plain dict. I doubt anyone actually does that anyway.
[currency] Better error message for invalid currencies

Fixes #552
Fix trigger.admin matching.

- Add $ to the regexp so re.match won't accept a partial match.

- Simplify the re.escaping to make sure it's actually correct.
Fixed issue #577 (.help not working for command aliases)
Merge pull request #578 from flashcactus/master

[core] Fixed issue #577 (.help not working for command aliases)
[Version]Send a little message to the owner and admins when Willie isn't updated.
[Version]Don't PM admins when outdated, only the owner.
[web, url] Move header-based encoding detection to web.get

url.py did this really good thing where it would look for the encoding in the
HTTP headers and use them to .decode() the string returned from web.get.

web.get() gained (not too long ago) the ability to decode text itself, but it
was doing it to utf8 by default.

So instead of hardcoding utf8 in web.get, I moved that detection functionality
from url to web, so now all modules using web.get will be able to enjoy it.
[uptime] Adds a rudimentary uptime module which tells how long the
bot is running.