(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.
(SERVER-61) more execution stub improvments

* Create 'ExecutionStubResult' class.
* Add a comment with link to a JIRA ticket.
(SERVER-38) Store JRuby scripting containers in pool queue

This commit stores JRuby `ScriptingContainer` objects created during
JRubyPuppet pool initialization into a hash along with their associated
`JRubyPuppet` object and puts the result into the pool queue in the
service context.  The consumers of pool instances were updated to borrow
the `JRubyPuppet` object from the new hash instead of just being able to
access the `JRubyPuppet` object directly.

In the previous commit, the `ScriptingContainer` objects were not stored
in the service context and would fall out of scope when the
`create-jruby-instance` function returned.  The container objects could
then be garbage collected later on.  During garbage collection, the
terminate logic on the container would clean up -- decrement the ref
count for -- any open `ChannelDescriptor`s.  If the ref count for the
`ChannelDescriptor` had been bumped up because a file had been opened
during a JRubyPuppet request and the associated container was
terminated while the file was still open, the call that the JRubyPuppet
request would make to close the file handle would result in JRuby
throwing a `BadFileDescriptor` exception -- an assert fired because an
attempt was being made to decrement the ref count on the descriptor
below 0.  By always holding a reference to the `ScriptingContainer`s,
the containers will not be garbage collected and, therefore, the race
condition around closing descriptors would be eliminated.
(SERVER-61) ExecutionStub: consume STDERR/STDOUT

Add a ProcessWrapper class for use by the ExecutionStub, which ensures
that the child process used to execute the command safely gets its STDOUT and
STDERR consumed by the parent process.  If this is not done, deadlock
can occur, if the child process is blocked on writing to either STDOUT
or STDERR, and the parent process is waiting on the child process to
terminate.
(SERVER-48) update version to 0.3.0 for release
(SERVER-51) Update changelog for 0.3.0 release
Merge pull request #227 from camlow325/bug/master/SERVER-38-keep-scripting-container-in-scope

(SERVER-38) Store JRuby scripting containers in pool queue
(MAINT) Bump artifact version up to 0.3.0-SNAPSHOT

Signed-off-by: Wayne <wayne@puppetlabs.com>
Merge pull request #238 from waynr/maint

(MAINT) Bump artifact version up to 0.3.0-SNAPSHOT
bump version to 0.3.1-SNAPSHOT
Merge pull request #239 from KevinCorcoran/bump-version-numb

bump version to 0.3.1-SNAPSHOT
Merge remote-tracking branch 'origin/stable'
Merge pull request #224 from KevinCorcoran/SERVER-61/ugh

(SERVER-61) improvements to the ExecutionStub
(MAINT) Fix pre_suite permissions bug.
Merge pull request #240 from waynr/maint

(MAINT) Fix pre_suite permissions bug.
(SERVER-71) Add support for configuring http client ssl protocol

This commit does the following:

* Upgrade us to the latest version of clj-http-client, which includes
  a default list of legal ssl-protocols and makes them configurable
* Add a new `http-client` settings section, in which you can configure
  the legal ssl-protocols and cipher suites for any http client requests
  that are issued by Puppet Server
(SERVER-31) Bump to non-snapshot version of http-client
(SERVER-71) Rename schema for clarity