Versioning for sidekiq workers

What does this MR do?

Allow workers to declare its version, and pass this version when jobs is created. Developer can access this information when job is run, and handle the case when version does not match the lastest version.

Extracted from gitlab-foss!16086 (closed)

Related to #214104

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Merge request reports

Loading