Fix #2663 - refactor to use shell_out in rpm provider

Fixes #2663 by using shell_out instead of popen4
Rather than recreating these as local variables when they were previously defined with let, you should do something like:

```ruby
context "installation exists" do
  let(:stdout) { "ImageMagick-c++ 6.5.4.7-7.el6_5" }

  it "should get the source package version from rpm if provided" do
    ...
  end

  it "should return the current version installed if found by rpm" do
    ...
  end
end
```

In the scope of that `context` block, `stdout` will have a different value, causing `status` to also have a different value (because it includes `stdout`).  That way you don't have to overwrite previously defined `let` blocks with local variables, which can cause issues.

You could also add a `before` block inside that `context` block which will only get applied to the specs inside the same `context` block if this makes sense.