Component versions
Subset of !578 (closed)
Decided to separate the MR into 2 because !578 (closed) was set to do 2 things. This MR refactors the way we supply the version of GitLab-rails, gitlab-shell and gitlab-workhorse to the software definitions. With this we will always have versions of crucial components listed in the version file. Added benefit of this is that together with release-tools!4 (merged) we will be able to have one command to do the whole release.