(#20442) Add tests for base provider methods

Prior to this commit, the base AixObject provider was supposed to raise
a Puppet::Error if called on several of the base methods; however, no
tests existed and those methods instead raised an error because the
non-existant `detail` was left in the error message from some copypasta.
This commit begins adding tests for the AixObject provider by starting
with these methods.
(#20442) Add tests for attribute conversion methods

Prior to this commit, no tests existed for the AixObject base provider
attribute conversion methods. This commit adds tests to verify validity
and structure of the attribute conversion methods.
(#20442) only execute lscmd once

Prior to this command, the AixObject provider was executing the lscmd
three times because the output is parsed in different ways. This commit
changes the provider to simply used the cached output in subsequent
parse commands.
(#20442) Filter attributes to only those managed

Prior to this commit, when trying to manage `attributes` for AIX users,
2 behaviours were occuring: 1) unmanaged attributes were included in the
"diff" and 2) regardless of current state, the changes were always
applied. This commit filters the changeset to only those `attributes`
explicitly mentioned in the manifest (or all of them in the case of
`puppet resource user`. Because the changeset is now sane, a change is
only enforced when necessary.