Move uploads to object storage

Merged Micaël Bergeron requested to merge 4163-move-uploads-to-object-storage into master

What does this MR do?

Enable uploads stored in the uploads table to be migrated to object storage. This MR will add a new configuration in the gitlab.yml file to specify the object storage.

This MR also refactors the upload/migration code paths to be more generic and is a step toward #4184 (closed) and gitlab-ce#40781.

Are there points in the code the reviewer needs to double check?

Why was this MR needed?

Screenshots (if relevant)

Does this MR meet the acceptance criteria?

What are the relevant issue numbers?

Closes #4163 (closed)

Edited by Nick Thomas