Refactor `MergeRequest::BuildService`
Currently this class is quite complex, with ABC size around 50 in CE and 60 in EE and therefore, at this moment, MergeRequest::BuildService#execute
is most complex method in our code base.
We already had run into it when we tried to decrease ABC size threshold in Rubocop: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/3598#note_4741052 and this is first step to improve complexity metrics in static analysis: https://gitlab.com/gitlab-org/gitlab-ce/issues/3444.