Improve debugability of resource anonymous fns.

When you build up a map of routes -> resources it is helpful to have the
resource handler fn named in a way that helps finding the source.

the defresource macro eventually makes a call to liberator.core/resource
which returns an anonymous handler function, but defined in the
liberator.core namespace.

However, If we define the anonymous function as part of defresource
macro then the anonymous function is defined in the callers namespace,
this makes tracking down "I'm somehow routing to the wrong handler" bugs
much easier to debug, because the anonymous function name in stacktraces
changes from something like:

#<core$resource$fn__15560 liberator.core$resource$fn__15560@4d8afb22>

to

#<project$project$fn__41618 kixi.hecuba.api.project$project$fn__41618@2068bdce>
Add support for multi methods as decision fn.

This PR adds an implementation of the `Representation` protocol for
`clojure.lang.MultiFn`. This enables the direct use of multi methods as
decision functions, instead of the workaround `#(my-multi %)`.
Fixes #128.
Merge pull request #134 from r0man/multimethod

Add support for multi methods as decision fn.
Fix #138. Allow decisions to return functions

If a decision returns a function which is expected to take no arguments
then the function's return value is used as the updated context.

This allows to circumvent the deep merge of maps and lists which context
updates do by default.
Merge branch 'update-0.11'

Conflicts:
	project.clj
Add handler :handle-exception
Merge pull request #145 from clojure-liberator/error-handler

Add handler :handle-exception
Add note on new PATCH support to CHANGES.markdown
Bump version number for release 0.12.0
Merge pull request #121 from MastodonC/improve-resource-debugability

Improve debugability of resource anonymous functions.
Fix reflection warnings
Merge pull request #150 from emlyn/patch-1

Fix some reflection warnings