(PUP-748) Fix the zypper package provider support for install_options.

When install_options is a hash, the options are rendered with a space.
This is causing zypper to interpret the option incorrectly when
using Kernel.exec.

For example, this fails with "unknown option '--from 1'":
Kernel.exec 'zypper', 'install', '--from 1', 'vim'

While this succeeds:
Kernel.exec 'zypper', 'install', '--from=1', 'vim'

The fix is to use the supported option syntax that uses
an equal sign instead of a space.

Also flattening the options instead of joining them so that
multiple options in a hash are not interpreted as a single option.
(PUP-748) Add specs for zypper install_options.

Remove expected nil when calling execute without install_options.

Add specs for install_options as a hash, array, or string.
Merge pull request #2441 from peterhuene/pr/2067

(PUP-748) Fix the zypper package provider support for install_options.