As a next action before we merge this, could you please amend this error class to contain the suffix "Error" which is our convention and the convention inside of MRI as far as I know.  So, `DuplicateGIDError` instead of `DuplicateGID`.

Also, special error classes such as this are typically only necessary if you're trying to catch the specific error and disambiguate it from other Puppet::Error instances.  It doesn't look like this is the case in this change set, so my recommendation is to simply raise a Puppet::Error and not a Puppet::DuplicateGIDError.