(PE-3659) Update Jetty shutdown processing for new TK release

This commit updates the project.clj dependency to a new Trapperkeeper
version (0.4.0) which has support for calling service stops when an
error occurs during service startup.  The related Trapperkeeper changes
were done in the pull request associated with PE-3657.

This commit also updates the project.clj dependency to a newer version
of Kitchensink (0.7.1) in order to stay in sync with Trapperkeeper's own
dependency on Kitchensink.

This commit adds shutdown reason awareness into the the ring_app
repl.clj example, also made possible by changes from PE-3657.

This commit updates the `shutdown` core function to support
shutdown being called when the Jetty server was not fully started --
essentially avoiding an exception that would have been thrown during
shutdown because of the missing Jetty server instance on the service
context.

This commit includes two new references in the .gitignore file -- to
remain in sync with the Trapperkeeper project's .gitignore file.
(PE-3659) Added Jetty server validation to service `init` exception test

This commit adds an assertion to a test that no Jetty server instance was
attached to the service context when a dependent service throws an
exception during its `init` function.

The commit also adjusts the test description to validate what it is
actually doing around the validation of the Jetty server instance.
Merge pull request #26 from camlow325/maint/master/PE-3659-init-start-shutdown-sync-up

(PE-3659) Update Jetty shutdown processing for new TK release
(PE-3140) Wrap webserver start in shutdown-on-error

This commit wraps the `start-webserver` call during the `start` phase of
the webserver-jetty9 service in a `shutdown-on-error` call.  This allows
the Jetty server instance to be persisted to the service context and,
therefore, have a `stop` call for the service stop the Jetty server
instance.  Stopping of the Jetty server instance is necessary in order
for the JVM process in which the server was started to gracefully exit.
(PE-3140) Catch `start-webserver` errors in `start`, calling `shutdown`

This commit changes the implementation of error handling for the call to
`start-webserver` during the start phase of the service to call
`shutdown` explicitly.  The implementation in the previous commit relied
upon the Trapperkeeper framework to invoke `shutdown` implicitly when
the service was being shut down -- signalled through the exception being
caught in a `shutdown-on-error` block.
(PE-3140) Removed unnecessary :ShutdownService shutdown-on-error reference

This commit removes an unnecessary reference to the shutdown-on-error
function in the :ShutdownService from the jetty9-service defservice.
Merge pull request #27 from camlow325/maint/master/PE-3140-handle-jetty-startup-errors

(PE-3140) Wrap webserver start in shutdown-on-error
(TK-2) Rename `:config` atom to `:state`

We need a place to store the original configuration data in the
context map, and the logical name for that is `:config`; we were
using that for another purpose (to store an atom that had some
mutable state).  This commit simply changes the existing uses
to use the key `:state` instead, which is probably a bit more
accurate of a description of what we're doing, and also frees
us up to be able to use `:config` to store the actual config
in subsequent commits.
(TK-2) Add in prismatic schemas and tests for configuration objects

This commit adds prismatic schema definitions and tests for all
of the objects making up the jetty9 configuration.  It doesn't
actually wire the schemas into the code yet.
(TK-2) Remove old `configure-webserver` functions

This commit removes all of the old configuration functions and
ports the code to use the new prismatic schema representations
of the config data.

Conflicts:

	src/puppetlabs/trapperkeeper/services/webserver/jetty9_core.clj
	src/puppetlabs/trapperkeeper/services/webserver/jetty9_service.clj
(TK-2) Reorganize core namespace

This commit doesn't contain any code changes; it simply re-orders
the functions and adds some pragmas to try to make things a bit
more organized.

Conflicts:

	src/puppetlabs/trapperkeeper/services/webserver/jetty9_core.clj