Make resource fn a macro to improve debugability.

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. If
resource is a fn the anonymous function it returns is defined in the
liberator.core namespace which gives all resources a similar name.

However, If we make resource a 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. 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>