fix(compile_uri_template): accept unicode literals

In Python 2 with `from __future__ import unicode_literals`, any URI
template strings will be of type `unicode`, not `str`.
fix(setup.py): Don't install 'tests' to site-packages
Merge pull request #279 from rouge8/dont-install-tests-to-site-packages

fix(setup.py): Don't install 'tests' to site-packages
feat(hooks): Pass resource to hooks

Make "before" and "after" hooks aware of the resource being acted
upon. This was implemented in such a way that existing hooks will
still work; the framework will detect whether a given hook function
accepts the extra "resource" param, and wire it up accordingly.

Rationale: This change is intended to ease creating more descriptive
and declarative resources. Hooks are the recommended approach for
implementing creating authentication/authorization solutions. However,
Authorization almost always depends on which resource is being
accessed. This patch provides the necessary context for such use
cases.

A good example would be an OAuth (1.0/2.0) where there is an concept
of "scopes" or "realms". Good OAuth middleware should allow
declarations like this:

class Resource(object):
    realms_allowed = ['admin', 'editor', 'viewer']

    @realms('viewer')
    def on_get(req, resp):
        pass

With this patch it will be easier to implement sophisticated
middleware.

Closes #268
chore(AUTHORS): Added Andy and Michał -- Thanks guys!
perf(hooks): Remove extra function call

This patch modifies the backwards-compat resource shim so that
it is simply assigned directly to the hook when possible, rather
than creating a noop passthrough.
Merge branch 'uri-template-unicode-literals' of github.com:rouge8/falcon into rouge8-uri-template-unicode-literals
Merge branch 'rouge8-uri-template-unicode-literals'
fix(hooks): Resource-aware hooks don't work with callable classes

The new resource-aware hooks feature assumed that hooks were functions,
so callable classes (which impliment __call__ explicitly) caused an
error to be raised by inspect.getargspec. This patch fixes that up.
fix(hooks): Resource hooks shim doesn't work for callable classes

If a callable class is passed as a hook, rather than a standalone function,
the heuristic which determines whether or not to apply a shim for
backwards-compatibility with existing hooks does not take into account
that there may be a "self" param for the hook.

This patch modifies the heuristic to take callable classes into account.
feat(HTTPError): Support XML response bodies

Falcon will now return an XML error response if the client prefers that
media type over JSON. The XML will be UTF-8 encoded.

Closes #109