Revert "Merge branch 'pull-2137'"

This reverts commit a20b16bb70446d43c51340f72c821fc3a93c7cb6, reversing
changes made to 00579976264da4b2b8492bb664291b9ba0d5987c.

Unfortunately this change introduced a number of problems that need to
be addressed before this code can be released.

1) The yum provider is always holdable

The package type detects the ability to hold packages based on the
presence of the #hold method. Even though there is a guarding clause
around the `has_feature :holdable` in the provider it's bypassed when it
fails since the provider defines the #hold method.

This ties into:

2) Holding a package without the yum-plugin-versionlock raises errors

Since the plugin isn't available but the provider looks like it's
holdable, applying a resource like:

    package { 'bash':
      ensure => held,
    }

results in a backtrace since `yum versionlock` returns 1, and a
Puppet::ExecutionFailure is raised.

3) Held packages are not idempotent

When the yum versionlock plugin is installed, the resulting resource is
not idempotent because the ensure value is always being changed from
$version to 'held':

    [root@localhost puppet]# puppet resource package bash ensure=held
    Notice: /Package[bash]/ensure: ensure changed '4.1.2-15.el6_4' to 'held'
    package { 'bash':
      ensure => '4.1.2-15.el6_4',
    }
    [root@localhost puppet]# puppet resource package bash ensure=held
    Notice: /Package[bash]/ensure: ensure changed '4.1.2-15.el6_4' to 'held'
    package { 'bash':
      ensure => '4.1.2-15.el6_4',
    }