(PUP-620) Add install_options to gem provider
(PUP-620) Limit gem install_options to install only.

The previous implementation by @mmoghadas would use the install options for commands like `list` which would cause errors.
(PUP-620) Add spec examples for yum install_options.

Checks nil install_options.
Checks plain values and hash key-pairs.
Merge branch 'pr/2429'

* pr/2429:
  (PUP-620) Add spec examples for yum install_options.
  (PUP-620) Limit gem install_options to install only.
  (PUP-620) Add install_options to gem provider

This closes GH-2429.
(maint) Fix directoryservice spec order issue.

The directoryservice provider caches some information such as OS version
and groups.  If a spec runs before the directoryservice spec that causes
information to be cached, expected stubs in the directoryservice spec
will not be invoked.

The fix is to remove the instance variables that are caching the
information on the examples that are expecting that nothing is already
cached.
(maint) Fix usage of remove_instance_variable for 1.8.7.

The previous commit used remove_instance_variable for fixing a spec
ordering issue.  This method is private on 1.8.7.

The fix is to instead just set the variable to nil, as it has the same
effect in this case.
Merge branch 'master' of https://github.com/puppetlabs/puppet