(PE-2843) Make it possible to get a reference to a service from a service

Sometimes instead of just getting a reference to the functions from a
dependency service in TK, it is more useful to get a reference to the
service itself (e.g. the object that `satisfies?` the service protocol).
This commit adds a `get-service` function to the main `Service` protocol in TK.
Throw an error from get-service if service does not exist
Remove commented line
Merge pull request #117 from cprice404/feature/master/PE-2843-service-get-service

(PE-2843) Make it possible to get a reference to a service from a service
Fix git command in deploy.sh

Because jenkins works on a detached HEAD, the git command that we were using to try to push the commits back up to github was invalid.  This commit changes the script to use an environment variable (populated by a Jenkins build parameter) to determine the correct branch name.
Update CHANGELOG for 0.3.2 release
Add lein release plugin
lein-release plugin: preparing 0.3.3 release
lein-release plugin: bumped version from 0.3.3 to 0.3.4-SNAPSHOT for next development cycle
bump version to 0.4.0-SNAPSHOT
Merge pull request #118 from KevinCorcoran/bump-to-0.4.0-SNAPSHOT

bump version to 0.4.0-SNAPSHOT
Change config-service-test ns to match production code

We changed the namespace heirarchy for the configuration stuff at
some point in the past, but didn't change the namespace of the
config tests accordingly.
Add testutils macros for instantiating apps

This commit adds `with-app-*` macros that correspond to all of the
`bootstrap-services-with-*` functions in the bootstrap testutils.
These new macros handle the prevention of registration of jvm
shutdown hooks, and also ensure that the app's `stop` function
is called after the test is complete.
Add try/finally blocks to new bootstrap macros
Update KS dep to 0.5.3
Merge pull request #119 from cprice404/maint/master/with-test-app-macro

Add testutils macros for instantiating apps
Add support for conf, json, and properties config files

This commit adds support for additional types of configuration files,
other than just .ini.

In particular, we now support:

* java .properties files
* .json files
* .conf files (HOCON/Human-Optimized Config Object Notation :
               https://github.com/typesafehub/config/blob/master/HOCON.md)

This commit is backwards-compatible; existing ini-based configurations
will continue to work unchanged.  However, you may now specify a
.properties, .json, or .conf file for your `--config` cli argument instead
of an .ini file.  Alternately, if you specify a directory, we will
parse all files of type .ini, .properties, .json, .conf in the directory
and merge the results.  An error is raised if a setting is specified
more than once.

Note that the .json and .conf formats support slightly more complex
data structures for configuration values; e.g., nested maps and arrays.
This will make it possible for us to introduce some slightly more
sophisticated configuration options for services in the future.  (One
example is the ability to configure a webserver to listen on multiple
ports, and serve different apps on the different ports.)
Clean up organization of config namespace

No code changes
Add support for .edn config files
Dynamically create empty.ini file