Add Group-wide secure variables - BE

What does this MR do?

This MR adds an ability to define group-wide variables (Currently, only project-wide variables are available). This MR is specifically focusing on BE change. FE change would be another MR.

This MR's proposal is https://gitlab.com/gitlab-org/gitlab-ce/issues/12729#note_28734045

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

Groups can be nested. That means we have to look up related group-wide variables recursively. The process should be efficient.

Why was this MR needed?

Requested at

Screenshots (if relevant)

TBD (For the first iteration, it'd be like https://gitlab.com/gitlab-org/gitlab-ce/issues/12729#note_28734045)

Does this MR meet the acceptance criteria?

What are the relevant issue numbers?

/cc @grzesiek

Edited by Shinya Maeda

Merge request reports