Added public groups area to enhance searching and exploring of projects

**What does this MR do?**
This MR adds an area, where the user can see the public groups. If he's not logged in, he will see all groups that have public only projects available. If he's logged in, he will see all groups that provide public and/or internal projects.

**Why was this MR needed?**
We're often missing the possibility to have a list of groups (e.g. Backend, Tools, Payment etc..) instead of searching for possible groups in a rather large project list.

This MR therefore enhances the search behaviour for the user.

**Screenshots (If appropiate)**
![gitlab-groups-list-feature-signed-off](https://cloud.githubusercontent.com/assets/6304496/3555692/4d47d99c-091a-11e4-8d63-2209db5f9f4c.jpg)
![gitlab-groups-list-feature-signed-in](https://cloud.githubusercontent.com/assets/6304496/3555734/cd9a0be2-091a-11e4-935e-b54a23d237da.jpg)




Use nested module/class definitions instead of compact style.