(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-51) Update changelog for 0.3.0 release
Merge pull request #236 from ahpook/SERVER-44-release_notes

(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
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
Merge pull request #237 from cprice404/feature/master/SERVER-71-http-client-ssl-prot-config

(SERVER-71) Add support for configuring http client ssl protocol
(SERVER-71) Fix broken specs from change to Master ctor

Previous commit broke the ruby spec tests due to a change to
the signature of the constructor for `Puppet::Server::Master`.
This commit fixes those broken tests.
Merge pull request #243 from cprice404/bug/master/SERVER-71-fix-broken-specs

(SERVER-71) Fix broken specs from change to Master ctor
(SERVER-86) Don't use CA public key file for autosign/revoke

This commit removes the usages of $capub from the autosign and revoke
functions. They will now extract the public key from the $cacert file,
which we can assume will always be available to those functions, unlike
the $capub file.

The only time that we should be reading/writing the $capub file is
during CA initialization.
(SERVER-29) exclude BouncyCastle jars from uberjar

Yo dawg, JRuby bundles the BouncyCastle .jars in its .jar.  Avoid using these,
since this project defines its own dependency on BouncyCastle directly.
(SERVER-86) Better testing of signed certificate

Improve the test to verify that the certificate was signed with the
public key from the CA certificate.