Allows jobLock option.key to be a function.

This can be used to return custom keys that depend on the job. My use
case is to prevent multiple jobs of the same type from running, and
ignoring their options.