Use uid's default gid if no gid is set.

This is the behavior that I'd expect. In a god config, if I do this:

    God.watch do |w|
      w.uid = 'theuser'
      w.start = 'my-daemon'
    end

... I would expect "my-daemon" to run as user "theuser", with the
default groups from "theuser".

Without this commit, you end up with a weird environment where a process
is running as a normal user, but still as the root group.

    $ id
    uid=1029(theuser) gid=0(root) groups=1029(theuser),0(root)

The above combination does, in fact, let the process access files that
"theuser" normally wouldn't be able to access.

This commit changes the group assignments so that it runs more like a
login shell.

    $ id
    uid=1029(theuser) gid=1029(theuser) groups=1029(theuser)
Include a uid's supplemental groups.

This makes `w.uid = "user"` start the watched process more like it would
start from a login shell.

This allows a daemon to require the running user to be a member of two
groups.
Process#groups= and Process#initgroups are called more.
Merge pull request #159 from spraints/groups

Do groups more like login(1)