(SERVER-61) improvements to the ExecutionStub

* The execution stub now returns an instance of
  Puppet::Util::Execution::ProcessOutput, as per the contract of
  Puppet::Util::Execution.execute.

* Add basic spec/unit tests

* In java, close the reader used to read the process's STDOUT.

* In ruby, close the file handles passed-in for STDIN, STDOUT, and
  STDERR; we're not using these (this is implemented in java instead),
  but Puppet::Util::Execution.execute does not close them when an
  execution stub is installed.
Is it possible for `output` to be null here - like if there was no stdout from the command execution?  If so, should we convert this to an empty string as this appears to do?

https://github.com/puppetlabs/puppet/blob/master/lib/puppet/util/execution.rb#L212