Improvements for REPL-driven development

This commit does the following:

* Adds a gitignore for `dev/user.clj` so that developers can create
  a file there w/o worrying about it getting tracked in VCS
* Modifies `dev/user-repl.clj` so that developers can override the
  default REPL Puppet Server config settings in their own `user`
  namespace.
* Provides an example `user.clj.sample` file, which can be copied
  to `user.clj`, which has an example of how to override the
  config settings plus a convenience function for loading the
  `user-repl` namespace and launching Puppet Server.
* Modify `project.clj` to define `user` as the default REPL
  namespace.
(SERVER-137) optimize /certificate_statuses

Deserialize the CRL from disk only once per request to
/certificate_statuses, instead of doing it for each certificate on disk.
(SERVER-136) Add docs for http client SSL config
(SERVER-136) add link to oracle docs for cipher suites
Merge pull request #256 from cprice404/maint/master/SERVER-136-docs-for-http-client-ssl-config

(SERVER-136) Add docs for http client SSL config
Merge pull request #257 from cprice404/maint/master/repl-improvements

Improvements for REPL-driven development
(SERVER-112) Clean up puppet server ruby config

Prior to this commit, we were passing in the optional profiler
object from the Clojure code to the Ruby code as a first-class
argument to the constructor of our Ruby `Master` class.

It's becoming clear that we're going to have more of these
Puppet-Server-specific config options that we have to pass through
over time (including some things that will be coming soon in order
to complete SERVER-112), so this commit refactors the code to
pass in a map containing *all* Puppet Server settings as a single
argument.

It also makes an initial effort to start moving the handling of
some of those settings into the Puppet::Server::Config class,
and tries to group them together a bit more inside the body
of the `Master` constructor.
(SERVER-112) Refactor ruby settings initialization

This commit just introduces some new methods to help take care
of Ruby settings initialization, in preparation for cleaning
up `master.rb` a bit.
(SERVER-112) Move puppet/puppetserver ruby config out of `master.rb`

`master.rb` was getting pretty hairy.  This commit moves the code
related to initializing Puppet Server's ruby stuff into the
Puppet::Server::Config class, and introduces a new class
Puppet::Server::PuppetConfig to house the Puppet ruby initialization.
(SERVER-112) Move `execution` code into its own class

The `Execution` stuff seemed out of place in `master.rb` and
`config.rb`, so this moves it to its own spot.
(SERVER-112) Move request handler logic to module

There was a lot of logic related to the Puppet::Network::HTTP::Handler
module that was inlined in `master.rb`.  This commit simply moves
it into its own module that we can mix in instead of mixing in
the one from Puppet directly.
(SERVER-112) Move `run_mode` to end of file

The `run_mode` method in `master.rb` was defined in the middle
of the methods that satisfy the `JRubyPuppet` Java interface.
This commit simply moves the method down so that all of the
methods related to that interface are grouped together.
(SERVER-112) Missing 'require', prioritize logging init
Merge pull request #259 from KevinCorcoran/SERVER-137/optimize-certificate-statuses

(SERVER-137) optimize /certificate_statuses
(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-112) DRY up profiler initialization
Merge pull request #260 from cprice404/maint/master/SERVER-112-clean-up-master-rb

(SERVER-112) clean up master.rb
(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-153) Use `:all` test selector in jenkins deploy script
Merge pull request #268 from cprice404/maint/master/SERVER-153-separate-unit-and-integration-tests

(SERVER-153) Separate unit tests from integration tests