Internally public projects

Public projects listed in the public section will be linked to the
actual project's page. Public projects now give any user Guest
permissions to the project, allowing them to download the code, read
and create issues, and view anything else in the project's pages.

Ample access tests have been added to the project_access_spec to
verify correct permissions and behavior on public projects.
- Visitors to the site who are not logged in still cannot view the
  project's pages.
- Logged-in users visiting a public project where they are not a team
  member can create issues, but not snippets. They can view the projects
  code, issues, merge requests, etc, just as if they were a Guest member
  of the project.
- Since this is a public project, the user is also granted :download_code
  permissions, a permission normally reserved for Reporters, since they
  can clone the repo anyways and browse commits and branches locally.
Fix internally public projects tests

Takes into account 98bea4b1ff and 3b88636d3c.
Non-logged in users see public project names as static text

In the public area, project names are shown as static text for
non-logged in users, while logged-in users are given project
names as links they can follow to the project's page.
Merge pull request #3801 from holdtotherod/feature/internally-public-projects

Internally public projects