(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.
Hey @joshcooper  - thanks for your feedback.

First of all, just so we're on the same page, my understanding is that the only place this code will ever be called is here:

https://github.com/puppetlabs/puppet/blob/master/lib/puppet/util/execution.rb#L180

Notice that, in the method linked above (`P::U::Execution.execute`), `stdin` and friends are opened, and the closed at the end of the method (this exact line of code).  However, in the case when an execution stub has been installed, those streams are opened but never closed, as that method simply does `return execution_stub.call(*exec_args)`.