Use a stronger identity for the working queue
As noted in https://gitlab.com/gitlab-org/sidekiq-reliable-fetch/-/issues/28, process id and hostname are insufficiently unique identifiers in a kubernetes world, where containers get the same or similar PIDs every time (empirically, nearly 50/50 pid 11 or 12, with a tiny fraction being others). It's actually slightly surprising that there's any variation, but even 50/50 means that when a container dies (e.g. OOM) and is rescheduled, it comes back with the same name and if the PID is the same, then the original implementation cannot tell that the previous process actually died. In a VM world this was entirely different, where PID re-use on process death would be nearly impossible.
This change uses Sidekiq::Utils#identity which is just the hostname + pid, but also a random nonce created per process, which will be a different value in a rescheduled container/pod, even if the hostname/pid are the same.
It has some slight complexity because it has to handle the migration, where there may be keys in the old format with jobs that need reschdeuling.
Closes #28 (closed)