fix(setup): Not all modules are cythonized

Ensure all framework modules (besides testing) are cythonized when
Cython is available. Use dynamic discovery to avoid missing any
modules that may be added in the future.

Closes #362
Merge pull request #364 from kgriffs/issues/362

fix(setup): Not all modules are cythonized
 feat(API): Add middlewares to falcon API

A list of Middleware classes can be added to falcon WSGI as keyword arg in API
A middleware will be executed always with every request/response dispatched.
A middleware can define process_request or process_response or both.
Arguments are the same as hooks and error_handlers.
When exception happens, the response middleware corresponding to already executed
process_request mw will be executed
Merge pull request #329 from ealogar/feature/middlewares

feat(API): Add middlewares to falcon API