Add gitlab and gitlab-shell.

I had to make several adjustments to make it work with nixos:

* Replace relative config file lookups with ENV variable.
* Modify gitlab-shell to not clear then environment when running
  pre-receive.
* Modify gitlab-shell to write some environment variables into
  the .authorized_keys file to make sure gitlab-shell reads the
  correct config file.

The current version requires the user to install the gitlab-shell
package into the systemPackages environment because
/run/current-system/sw/bin/gitlab-shell is hard-coded in the
.authorized_keys file.
gitlab has a few management commands that have to be run from the command line, e.g.
```
sudo -u gitlab -H bundle exec rake gitlab:app:status RAILS_ENV=production
```

`gitlab-runner` is a way to run bundle code with the correct environment.