(TK-21) Add `:callback-fn` option to `add-proxy-route`

This commit adds a `:callback-fn` option to `add-proxy-route`'s
`proxy-options`. This option can be given a function that will manipulate the
request object (for example, to add a header) when using Jetty's proxy
servlet.
(TK-21) Update README for `add-proxy-route` `:callback-fn` option
Merge pull request #35 from rlinehan/TK-21_proxy_callback_fn

(TK-21) Add `:callback-fn` option to `add-proxy-route`
(TK-10) Add function to get endpoints

Add function to get all registered endpoints. Currently returns
registered endpoints as strings. Tests also added.
(TK-10) Change to maps

Change get-registered-endpoints function to return maps instead
of strings. Update tests accordingly.
(TK-10) Use constants for types

Change endpoint saving to use constants for the type of
handler that registered the endpoints. Change tests to use
these same constants.
(TK-10) Dynamically add endpoints set

Dynamically add endpoints set to state during start lifecycle
function of the service, rather than adding it on creation
of the state atom.
(TK-10) Cleanup endpoint saving

Cleanup endpoint savings as per suggestions on the PR.
Change definition of state in let statements to (:state s).
Use update-in instead of assoc when updating state atom.
(TK-10) Use keywords to indicate type

Change from using defined constants to using keywords to indicate
the type of endpoint information. Also fix use of update-in.
(TK-10) Add additional servlet info

Add :servlet field to the servlet endpoint map, which contains
the type of the servlet.
(TK-10) Merge tests/change proxy keys

Merge the two tests testing get-registered-endpoints.
Change the names of the proxy keys to be more helpful/accurate.
(TK-10) Fix test failures

Fix test failures introduced by merging the two tests. Did so by
changing the calls to different versions of the same functions
so they would not have the same output.
(TK-10) Add log-registered-endpoints

Add log-registered-endpoints, which will get the
info on the registered endpoints and log it. Add unit test for
this function..
(TK-10) Add schema to get-registered-endpoints

Add schema with which to validate the return value of
get-registered-endpoints and its parameters.
(TK-10) Remove extraneous schema

Remove extraneous TestEndpoint schema, as it is no longer
needed.
(TK-10) Cleanup schema

Cleanup schema for the get-registered-endpoints function.
Change some nams and give an explicit required value for the
:type fields on each of the endpoint schemas.
(TK-10) Add register-endpoint function

Add register-endpoint function to core, which now handles
all the parsing of the endpoint information, thus removing it
from each individual service handler.
(TK-10) Move map construction to caller

Move construction of the endpoint map to the caller of the
register-endpoint! function.
(TK-10) Add context-listeners to map

Add context-listeners to endpoint map when context-listeners
are provided.
(TK-10) Add context-listener test case

Add additional test-case with non-empty list of context-listeners.
add-context-handler is now being tested with both an empty and
non-empty list of listeners.