Make default-parser-map configurable.

People using custom data readers currently can't use the body-params
interceptor, because edn/read doesn't honor the *data-readers* var,
and there was no way to pass options into the edn-parser fn. A
similiar issue arises for people who want JSON maps with keywords as
keys, instead of the default strings.

This commit changes edn-parser, json-parser and form-parser (not
needed yet) to accept optional arguments that are passed to the actual
parser fns and return higher order fns that are configurable via
default-parser-map like this:

(body-params (default-parser-map :edn {:readers *data-readers*}))

Since data readers are very cool, and it is idiomatic Clojure to use
keywords to access maps there's still the question to use
*data-readers* as a default when parsing EDN and the keyword fn for
JSON.
Retain existing service body_params interface while exposing control

This is a bit more work than @r0man's proposal, but it maintains API
compatibility for existing users. Instead of changing existing APIs I
created new custom-{json/edn}-parser functions, with existing functions
being the "default" versions of these parsers. I opted *not* to include
a version for form parsing--we'll cross that bridge when we get to it.

Since it seems to already be an established practice on the project I
preferred key-val pairs over hash-map options, even if at times slightly
more work than necessary.

I also shored up the docs! Thanks again to @r0man for bringing this up
and given me something to do on my plane ride home.

This fixes #96, #97.
Merge pull request #98 from pedestal/custom-parsers

Custom parsers for io.pedestal.service.http.body_params