(PUP-3227) Address man page ownship conflicts

Prior to this commit, upgrading from puppet=2.7.23-1~deb7u3 and
puppetmaster=2.7.23-1~deb7u3 to puppet=3.7.0.29-1puppetlabs1 and
puppetmaster=3.7.0.29-1puppetlabs1 fails. I believe this problem is due
to how Debian chose to package puppet-common, which owns
`/usr/share/man/man8/puppet-master.8.gz`.

This commit adds in a `Conflicts:` to the puppetmaster and
puppetmaster-common packages to make sure that we can successfully
upgrade from these older package versions. However, if a user has
puppetmaster and puppet older than 3.3.0 installed on a machine, and
only upgrades puppetmaster, this will uninstall the puppet package from
the system.
PUP-3366 Fix issues with string/enum type assignable calculations

There were errors in the calculation of string/enum calculation.
Basically Enum == String, if String is size constrained then
Enum < String. This fixes this calculation.

There were no tests for this, they are now added.
(PUP-3366) Correct comparisson of Enum > Enum[a]

Comparissons involving an unparentesized Enum were not correct
because an iteration with all? returns true if the set being
enumerated is empty.

This modifies the logic, and adds missing tests.
Merge pull request #3074 from melissaanne/stable

(PUP-3227) Address man page ownship conflicts
Merge pull request #3134 from hlindberg/PUP-3366_string-enum-type-calculation

PUP-3366 Fix issues with string/enum type assignable calculations
Merge remote-tracking branch 'upstream/stable'

* upstream/stable:
  (PUP-3366) Correct comparisson of Enum > Enum[a]
  PUP-3366 Fix issues with string/enum type assignable calculations
  (PUP-3227) Address man page ownship conflicts

Conflicts:
	ext/debian/control
  - Took the Suggests like from the master branch and the Conflicts line
    from the stable branch