Add support for mime type annotations on callbacks, fixes #63

Callbacks can now have two new annotations: either @DisableContentNegotiation
which will disable any content negotiation if the route with this callback
is called. The other option is @SupportsMimeType, which requires at least
a mimeType parameter, and an optional formatter. The formatter can either
be specified with its class name or with the class like ExampleFormatter.class.
A callback can have as many @SupportsMimeType annotations as it makes sense,
so for example it can specify that it supports two different mime types.

A mime type specified via annotation can not be disabled by specific route
configurations. However, a formatter specified via annotation can be overwritten
by a formatter defined for the route, but not by a globally defined formatter.