(PDB-107) Support chained CA certificates

This patch makes puppetdb load all of the certificates in the CA .pem
file into the in-memory truststore. This allows users to use a
certificate chain (typically represented as a sequence of certs in a
single file) for trust.
Merge pull request #788 from grimradical/PDB-107-cert-chains

(PDB-107) Support chained CA certificates
Merge remote-tracking branch 'upstream/1.6.x'

* 1.6.x
  (PDB-107) Support chained CA certificates
Port PuppetDB to run on trapperkeeper

Conflicts:

	project.clj
	src/com/puppetlabs/puppetdb/cli/services.clj
	src/com/puppetlabs/puppetdb/config.clj
	test/com/puppetlabs/puppetdb/fixtures.clj
	test/com/puppetlabs/puppetdb/test/config.clj
Introduce `error-shutdown!` function for handling fatal errors

This commit does the following:

* Introduces a `context` atom in services.clj, whose value is a
  map used to keep references to the various stateful bits of
  the PuppetDB subsystems.  This is something that has been
  discussed previously as a means for potentially allowing more
  interactive development in the REPL, and for doing things
  like dynamically reloading subsystems when configuration
  changes occur.  In this commit, it's used to provide a way
  to shutdown those subsystems when a fatal error occurs.

* Adds the new `error-shutdown!` function, which is responsible
  for shutting down threads and subsystems from the `context`
  when a fatal error has occurred.
Add environment variable to allow SNAPSHOT dependencies

By default, leinengen doesn't allow SNAPSHOT dependencies when
running `uberjar` on a project that is not also a SNAPSHOT.
Because of the way that we handle the project version in the
PuppetDB project.clj file, PuppetDB is *never* in a SNAPSHOT
state.

This commit adds an environment variable that will cause
leinengen to allow SNAPSHOT deps, but only when running
acceptance tests FROM SOURCE.  Packaging jobs should still
fail if this kind of scenario is encountered for now.
Properly handle cli! errors
Properly handle cli! --help
Hit actual endpoint to see if PuppetDB started
Update to released versions of deps, use new cli exceptions

This commit does the following:
* Update to a released version of trapperkeper
* Update to a released version of kitchensink
* Change cli error handling to use new namespaced keywords
Add clarifying comments to `bootstrap.cfg`
Remove SNAPSHOT dependency from test profile
Change trapperkeeper docs link to point to head of 0.1.x branch
Remove unused Jetty configuration

Web server configuration is now handled by trapperkeeper.

Conflicts:

	src/com/puppetlabs/puppetdb/config.clj
Remove unused dependency on ring-jetty-adapter
(PDB-247) Fixes the namespace override warnings from schema

Schema 0.2.0 has not yet been released, but has the fix for PDB-247. I
made a pre-release (0.2.0-pre-1) of the current state of the branch and
updated PuppetDB to use it.  Some PuppetDB code also needed to change as
one of the protocols is changing in 0.2.0.
Merge pull request #780 from cprice404/feature/master/pe2015-refactor-to-trapperkeeper

Refactor to trapperkeeper
Merge pull request #789 from senior/ticket/master/pdb-247-fix-schema-warnings

(PDB-247) Fixes the namespace override warnings from schema
(PDB-254) Change benchmark to mutate catalog resources and edges send a defined number of messages

Previously benchmark.clj when it would mutate a catalog would only
add a single resource.  This change will add a new resource or
mutate a random existing resource.  It will also add a new or
change an existing edge.  One of these four mutations is picked
at random.  This commit also adds a new parameter to benchmark.clj
to allow the syncronous sending of a specified number of commands
(per host) via the -N argument
Fixed report submission part of benchmark to change the start/end time
and config version