Explicit return calls do not raise LocalJumpError

Instead of calling instance_eval on the block passed into
Endpoint#initialize, create an anonymous UnboundMethod with the block as
the method body. When executing the block bind the instance of Endpoint
to the UnboundMethod and call it.

This behavior and solution is taken from Sinatra.

This solution also makes it possible to pass the values of
Endpoint#params as arguments to the block. That feature is not present
in this commit, but is trivial to implement.
updates CHANGELOG
Endpoint.generate_api_method: detect method_name collision on MRI 1.8.7-p370
Merge pull request #269 from simulacre/explicit_return

Explicit return calls do not raise LocalJumpError
Fixes #86

Allows path versioned APIs to use root routes
Makes the fix 1.8.x compatible
Adds a CHANGELOG entry for the #86 fix
Merge pull request #275 from walski/fix-86

Fixes #86
Update CHANGELOG.markdown
Update CHANGELOG.markdown
Allow custom formatters to be set with API settings.

Due to their close relationship with content-types, it seems obvious to allow custom formatters to be set in the same way.
Merge pull request #277 from tim-vandecasteele/formatters_via_settings

Allow custom formatters to be set with API settings.
Disabled formatting via  and added support for  in API settings.
Undo spec helper change.
Added spec for custom formatter.
Added example of how to use a custom formatter module.
Moved content-type methods to Base.
Documented missing param.
Merge pull request #282 from dblock/formatters-and-parsers

Disabled formatting via  and added support for :serializable_hash in API settings.
Added a DSL to declare 'error_formatter' in API settings.