(PUP-1769) yum provider takes install_options

The yum provider now supports install_options.
(PUP-1769) Changing the has_feature to a one-liner
(PUP-1769) Use join_options command

As recommended by @adrienthebo, referencing install_options like this allows
special semantics.
(PUP-1769) Update yum specs with install_options

Specs now take into consideration the install_options parameter, with
both singletons and key-value pairs.
(Maint) Convert test to use real resource objects

Use real yum package resource objects
(PUP-1769) Don't pass nil through to provider command

Previously, if `install_options` was not specified, then we would
pass a nil value through to the `yum` command. While this would work, we
don't document that nil's are acceptable arguments.

This commit ensures we only pass in non-nil `install_options`.
Merge branch 'pr/2414'

* pr/2414:
  (PUP-1769) Don't pass nil through to provider command
  (Maint) Convert test to use real resource objects
  (PUP-1769) Update yum specs with install_options
  (PUP-1769) Use join_options command
  (PUP-1769) Changing the has_feature to a one-liner
  (PUP-1769) yum provider takes install_options

Closes GH-2414