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
perf(Request): Cache native stream check

Avoid having to call isinstance every time a new Request object
is initialized. Use a flag that can be set after the first time
this check is made, so that thereafter a simple boolean operation
is required instead of having to call the more costly isinstance
function.