Allow overriding data file location

Mostly for testing purposes
Fix throttle notifications

Only show up for certain commands - things that are throttled for reasons other than channel flooding
Enhance throttle decorator

Remember the return value from the last call and return it when throttled, so that this can also be used for memoisation-ish caching. Also add a 'reset' method to bypass the throttle for a call.