[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