(maint) Use Struct::Passwd instead of Etc::Passwd

The return type of Etc.getpwent (and friends) is available as
Etc::Passwd in ruby 1.9.3 and later. However that constant doesn't exist
in ruby 1.8.7. However the docs refer to the type as Struct::Passwd,
which turns out to be available on 1.8.7, 1.9.3, 2.0.0, and 2.1.0.
(PUP-2943) Add PMT --ignore-changes

Prior to this commit there was no way to only ignore local changes to a module.
You had to --force when upgrading/uninstalling, which could potentially have other
repurcussions.
This commit adds the --ignore-changes flag, so a user can specify that they don't
care about local file changes but do not want to force anything else.