Fix pson pure in 2.7.x for AIX.

Prior to this commit, PSON pure would fail on AIX for 2 reasons: 1)
AIX's Power processor is little endian and we specifically request
`utf16-be` for big endian, and 2) iconv on AIX is case-sensitive, which
means it knows about `UTF-8` and `UTF-16`, but not `utf-8` and `utf-16`.
This commit ignores the endian problem and instead just upcases the
requested encodings. This patch only applies to Puppet 2.7.x as iconv
has been removed from pson pure in 3.0+.
(#7841) Always read SELinux module header as little endian

These are always little endian, but are currently being read as native
byte order, which obviously causes failures.
Explicitly fail on downgrades in the AIX package provider

Downgrades do nothing because the package is superseded by a newer
version, but still don't exit non-zero. The only way to downgrade is to
force the installation, which requires us to ignore dependencies. As
this isn't palatable, we now explicitly fail if we see that the
package was superseded by a newer version.

This also fixes an issue of using << vs. +=, which would cause the
resource's name to be modified during installation.
Merge remote-tracking branch 'nicklewis/aix-7841-selinux-little-endian' into aix

* nicklewis/aix-7841-selinux-little-endian:
  (#7841) Always read SELinux module header as little endian
Merge remote-tracking branch 'nicklewis/aix-package-downgrades' into aix

* nicklewis/aix-package-downgrades:
  Explicitly fail on downgrades in the AIX package provider
Merge pull request #1415 from jeffweiss/ticket/2.7.x/151_iconv_hates_aix

(AIX) Fix pson pure in 2.7.x for AIX.