(SERVER-112) Set log level *after* initializing puppet settings

If we set the puppet log level before we initialize Puppet's settings,
it will be overridden.  This commit moves the call to set the log
level to a later stage during initialization, after we've
initialized Puppet's settings system.
(SERVER-153) Separate unit tests from integration tests

This commit is just some preparation for some larger forthcoming
changes.

The idea is that there are some things that we can start testing
in pure clojure that are more at the integration level than the
unit level.  e.g., we can start doing some tests around catalog
requests based on manifests and other files on disk.

This kind of testing should be *significantly* less expensive
(both in terms of development / maintenance and in terms of
execution times) than the existing beaker-style acceptance tests,
but significantly *more* expensive than what you might normally
think of as a clojure unit test.

Using lein's `test-selectors` feature, it is possible to flag
some tests as 'unit' tests and some tests as 'integration' tests.
This commit is a first step towards breaking up our tests into
two groups like this.  It does the following:

* Change our `test-paths` setting from the default (`["test"]`) to
  explicitly specify separate directories for unit/integration:
  `["test/unit", "test/integration"]`.

* Move all existing tests to `unit`, except for the `bootstrap` test,
  which is moved to `integration` (in preparation for fleshing it
  out a bit further in a subsequent commit.)

* Set up the default test profile (e.g., what happens when you run
  `lein test`) to be ':unit'.  Integration tests can be run in
  isolation via `lein test :integration`, and all tests can be run
  in a single run via `lein test :all`.

* Update travis script to run `:all`.
(SERVER-112) rename dev sample config file

We were not being consistent in our naming of our various sample
config files.  This commit simply renames the main puppet-server.conf
sample file to be more consistent with the other sample files.
(SERVER-112) rename testutils namespaces to be more specific

This commit simply renames the `jruby/testutils` and `ca/testutils`
namespaces to `jruby-testutils` and `ca-testutils`.  In a subsequent
commit I will be introducing another new testutils namespace, and
was concerned that we were going to start piling up too many files
named `testutils.clj`.
(SERVER-112) Introduce bootstrap testutils, improve bootstrap test

Prior to this commit, the bootstrap test wasn't actually doing
much work.  It would create a trapperkeeper app to make sure that
there were no failures in just loading the service *namespaces*,
but it did not call any of the lifecycle functions of any of the
services, so would not actually do much in terms of validating
that the app could be run.

This commit improves the test to make it actually do a full startup
of the app based on the sample config files.

It also introduces a bootstrap_testutils namespace, which contains
some test utility code relating to booting up a puppet server
instance during testing.  This will be useful for some forthcoming
tests that I am writing related to testing puppet's directory
environments.
(SERVER-112) Add support for flushing environment cache

This commit introduces a new class that we can plug in to the
recently-added Puppet extension point for controlling the
eviction of entries from the directory environment cache.

It also introduces all of the corresponding plumbing that
we need on the clojure side in order to make it work.  This
includes some additional state that we need to track on each
JRuby instance to keep track of the staleness of individual
environments.

Lastly, it introduces some integration tests that actually
set up the puppet code on disk and make catalog requests
against the server to validate the caching behavior.
WIP: rename jruby testutils