(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.
I think `stdin` would only be meaningful if the Ruby side of this implementation were honoring the `stdinfile` option, e.g., for piping stdin content to the command being executed.  I could see where this option would be useful, but I thought we had agreed to not implement any of the options for now.

https://github.com/puppetlabs/puppet/blob/master/lib/puppet/util/execution.rb#L173

For stdout / stderr, since the Java implementation is not using the supplied streams to manage where the output / error data is stored, doesn't seem like it matters whether the streams are closed before or after the execute call.