Add flexibility in managing git user, group and home directory

These modifications allow the following:
- Externally managing the git user (for example, using an external directory service)
- Assigning a group with a different name to the git user
- Allowing the home directory to be separately managed, if desired

I've successfully deployed this on a test server.  By default, the behaviour is the same as before.
These tests were moved to spec/defines/gitlab_config_database_spec.rb