Add support for publicly-accessible LocalSites.

LocalSites have always been locked down to members of the groups, but
there are advantages to allowing for anonymous access when simply used
for partitioning of a server by teams/organizations.

This adds a public flag to LocalSite. If set, non-members will be able
to access anything that's considered public within the LocalSite. This
essentially gives it the same behavior as a standard site.
Add support for GitLab as a hosting service.

This adds support for the GitLab code hosting service. This is an open
source alternative to GitHub that supports Git repositories, issue
tracking, and more.

GitLab support takes advantage of plans. There are only two: "personal"
and "group".

The GitLab API, while mostly straight-forward, has some quirks. One of
those quirks essentially prevents us from supporting more than 100
repositories in an install (as lookups will fail). This hopefully won't
impact most people.
Merge branch 'release-1.7.x'