Refactor sources channel logic to have SSOT
When I was trying to get omnibus development running on my local machine, I found it a little bit difficult to understand how we were switching sources depending on variables. So I decide to refactor and improve test coverage.
I've switched from using complex ENV mocking to more descriptive method names. Maybe ::Gitlab::Version is not the best place to have that logic, but as it is where it was being used, I don't see any immediate problem in keeping it there.