(maint) Reduce redundancy in Puppet::Util::Posix
Before this commit Puppet::Util::Posix had duplicate error
handling code for retrieving the actual ID, either of a group or
user. This commit refactors those two methods to abstract away
the location of the source of truth, either the group file
or the passwd file, and the logic for handling whether or not
a numeric ID or a name was passed in.