First commit
Swap ms and fn argument in cache function
Add API documentation
Clear cache if the first argument is an error
Make the callback optional
Use util.isError to check for Errors
Clean up tests
Return and cache the returned value as well
Rename module to limit-callback
Add option to wait for the timeout to expire

With this option, the runner callback will not be called until the
timeout have expired.
Rename module to throttling