(SERVER-116) Reuse client instances

Reuse HTTP client instances in the ruby code rather than creating
a new one for every request.
Merge pull request #284 from fpringvaldsen/SERVER-116-reuse-client-instances

(SERVER-116) Reuse client instances
(MAINT) Update TK and Kitchensink dependencies
Merge branch 'master' into future

* master: (21 commits)
  (MAINT) Ensure gem subcommand tests honor GEM_SOURCE
  (maint) add config for admin API
  (SERVER-208) Improve error message for missing `puppet-admin` section
  (SERVER-114) /environment-cache header handling
  (SERVER-114) specify puppet.conf used by test
  (MAINT) Use GEM_SOURCE env var in Gemfile
  (SERVER-114) add comment about test coverage
  (SERVER-114) make API more RESTful
  (SERVER-114) endpoint to flush environment cache
  (maint) rename functions for clarity + consistency
  (MAINT) Add build & compare urls to travis template.
  (SERVER-167) Added language to syntax highlights
  (SERVER-138) Fixed typo
  Just fixing a spelling mistake
  (SERVER-203) Update to clj-http-client 0.4.0
  (SERVER-113) Add new puppet-admin-api HTTP endpoint
  (SERVER-167) Add documentation on `set_trace_func`
  (SERVER-113) Refactor whitelist logic out to ringutils
  (SERVER-138) Set name of doc section to HttpPool-Related Server Settings
  (SERVER-138) Addressed PR feedback
  ...

Conflicts:
	src/ruby/puppet-server-lib/puppet/server/http_client.rb
(maint) delete a couple unused functions
(SERVER-88) catch errors before they get to Jetty

Add a 'catch-all' middleware to both the Master and CA ring handlers
which catches any Exception, logs it, and returns a simple error message
in the response body.  This prevents Exceptions from propagating all the
way out to Jetty - if this happens, Jetty will generate HTML from the
stacktrace and return this to the client.
(SERVER-88) improve exception handling

* 'wrap-exception-handling' now includes the exception type + message in
  the response body it returns.

* Update the exception handler in the liberator resources to simply
  re-throw exceptions, causing them to be handled in middleware.
(maint) fixup botched merge conflict resolution
Merge pull request #296 from fpringvaldsen/update-to-tk-1.0.1

(MAINT) Update TK and Kitchensink dependencies
fix typo in docstring
Merge pull request #285 from KevinCorcoran/SERVER-88/no-html-in-500s

(SERVER-88) catch errors before they get to Jetty
Merge branch 'master' into future

* master:
  lein-release plugin: bumped version from 0.4.1 to 0.4.2-SNAPSHOT for next development cycle
  lein-release plugin: preparing 0.4.1 release
  (MAINT) Add some notes about debugging / ruby
  (MAINT) Fix typos, simplify git submodule init for quickstart
  (MAINT) Update developer docs re: running from source
  DOC-1281: Puppet Server gems, puppetserver_vs_passenger
DOC-1281 Puppet Server puppet_conf_setting_diffs edit

Edited puppet_conf_setting_diffs.markdown
DOC-1281: Edits to puppet_conf_setting_diffs.

Title change, fixed style on file names (`puppet.conf` -> puppet.conf), and fixed awkward usage error.
(SERVER-250) Document jruby-pool Admin endpoint

Document the new jruby-pool endpoint that was recently added
to the HTTP Admin API.
(SERVER-204) Subcommands for 'ruby' and 'irb'

Working implementations for ruby and irb to go along with the gem
subcommand. Acceptance tests need to be written, as well as docs.
(SERVER-151) Add jruby-pool HTTP Admin endpoint

Add a jruby-pool endpoint to the HTTP Admin API that, when given
a DELETE request, will flush the JRuby pool.
(SERVER-204) Set compatibility version and improve load path order
(SERVER-245) Avoid Puppet 4 being used as a dependency

Without this patch puppet-server allows any version of Puppet >= 3.7.3.
This is a problem because Puppet 4 is on the horizon and will introduce
changes in behavior incompatible with behaviors we depend on.

This patch addresses the problem by specifying that RedHat and Debian style
packages should only use puppet packages >= 3.7.3 and < 4.0.0 to satisfy
the dependencies for puppet-server.
Merge pull request #321 from nwolfe/svr204-ruby-subcommand

(SERVER-204) Subcommands for 'ruby' and 'irb'