Maint: Add Gemfile and update .gitignore

Support the bundle workflow.
(#22578) Return powershell's output and status

The powershell module overrides the Puppet::Provider::Exec#run method,
but did not return the executed command's output and status on ruby
1.8.7. The exact behavior actually relied on the internals of the
Tempfile class, so it surprisingly worked on ruby 1.9, but failed on
ruby 1.8.7.

This commit adds an explicit return to ensure we return whatever the
super method returns, and adds tests for `unless` and `onlyif`, which is
where the problem shows up.

Paired-with: Ethan Brown <ethan@puppetlabs.com>