feat(macros): add convenience macro for establishing routes
docs(nickel): fix documentation for query_string
docs(nickel): fix documentation for json_body_parser
docs(nickel): fix documentation for router
refactor(nickel): remove static_files

BREAKING CHANGE
This will break code of the form:

server.utilize(Nickel::static_files("/path/))

it should be changed to:

use nickel::StaticFilesHandler;
server.utilize(StaticFilesHandler::new("/path"))
refactor(nickel): change signature for handle_error

BREAKING CHANGE
This will break code of the form:

server.handle_error(IntoErrorHandler::from_fn(handler))

it should be changed to:

server.handle_error(handler)
docs(nickel): fix docs for delete
docs(nickel): fix docs for put
docs(nickel): fix docs for post
docs(nickel): fix docs for get
docs(nickel): fix docs for utilize
docs(nickel): fix docs for new
refactor(router): add RequestHandler typealias
refactor(into_middleware): remove IntoMiddleware

BREAKING CHANGE

This will break code of the form:
some_fn_requiring_middleware(IntoMiddleware::from_fn(f))

And can be fixed by doing:
some_fn_requiring_middleware(f)
refactor(into_error_handler): remove IntoErrorHandler

BREAKING CHANGE

This will break code of the form:
some_fn_requiring_errorhandler(IntoErrorHandler::from_fn(f))

And can be fixed by doing:
some_fn_requiring_errorhandler(f)
refactor(middleware): add MiddlewareResult typealias
refactor(middleware): use forloop instead of iter.all()
refactor(router): change path parameter of add_route to &str

BREAKING CHANGE

This will break code like:
router.add_route(Get, "hello".to_string(), handler)

To fix it use:
router.add_route(Get, "hello", handler)
refactor(router): add HttpRouter trait and impl for Router
refactor(nickel): impl HttpRouter for Nickel