Merge pull request #885 from senior/ticket/master/pdb-472-mq-pass-through

(PDB-472) - Annotate MQ messages without parsing payload
PDB-473 Support POST using application/json data in the body

This patch adds to the commands end-point the ability to simply POST using
application/json with the JSON content in the body.

It also switches the terminus to use this mechanism.

We found that the url encode/decode required to support x-www-form-urlencoded
was actually quite an overhead in a number of ways:

* The urlencode on the terminus added overhead
* The urldecode in the server added overhead
* The interim strings created during this encode/decode process can get quite
  large increasing the amount of garbage collection required

This feature has been implemented by providing a new middleware that will move
the body into the parameter :body-string of the request when the content-type
is not set to application/x-www-form-urlencoded. This provides a convenient
backwards compatible layer so that the old form url encoding can still be
supported for older versions of the API.

Signed-off-by: Ken Barber <ken@bob.sh>
PDB-473 Add a content-type verification middleware

Signed-off-by: Ken Barber <ken@bob.sh>
PDB-473 Additional tests for verify-content-type and other cleanups

Signed-off-by: Ken Barber <ken@bob.sh>
PDB-473 Convert submit-command-via-http! to use application/json POST

Signed-off-by: Ken Barber <ken@bob.sh>
PDB-473 Use (seq foo) on its own

Signed-off-by: Ken Barber <ken@bob.sh>
PDB-473 Adapt for new queue message format

PDB-472 changes the format of the messages received from the queue so that
headers are top-level. This patch just ammends the work to support that.

Signed-off-by: Ken Barber <ken@bob.sh>
Merge pull request #880 from kbarber/ticket/master/PDB-473-raw-json-posts

PDB-473 Support POST using application/json data in the body
Fixes for Clojure 1.6 compatibility

The new version of Clojure made some changes to .hashCode for various
data structures, so places where we were relying on (undefined)
insertion-order traversal of various data structures stopped working.
(PDB-512) Update to Clojure 1.6.0-RC1
Merge pull request #887 from grimradical/clj-1.6-compat

Fixes for Clojure 1.6 compatibility
Add jdk8 tests to travis-ci
Merge pull request #889 from grimradical/travis-jdk8

Add jdk8 tests to travis-ci
Use Clojure 1.6.0-rc3

Signed-off-by: Ken Barber <ken@bob.sh>
Clojure 1.6.0-RC4

Bump clojure to 1.6.0-RC4 instead, now that it was released quickly behind
RC3.

Signed-off-by: Ken Barber <ken@bob.sh>
Merge pull request #893 from kbarber/maint/master/clojure-1.6.0-rc3

Use Clojure 1.6.0-rc3
(PDB-452) Adding support for storing environments

Added support for environments to the model and command wire formats.