Initial structure for a Core Agent API, which is responsible for detecting features and browser name/version/vendor etc.
Cleaned up `base.Handler`, reducing many property accessor functions to lambdas for cleaner code. Refactored template rendering from `handler.render`, eliminating needless merges for template context and headers. Fixed an issue where the Response object could be re-created and data from the previous response partially lost.
Refactored and cleaned up runtime hooks, which now build context incrementally as they go instead of vomiting kwargs :sparkles: and completely eliminated `content.ContentFilter`, which didn't really filter content. So it has been replaced with `hooks.HookResponder`, and a new partner, `hooks.Context` (which allows selecting context arguments to be passed to the selected hook).
Cleaned up generators for render flow.
Added TODO.
General cleanup in handler and session API. Fixed issue with incorrect __all__ for Core APIs.
Cleaned up PDB's, fixed issue with classmethods wrapped by HookResponder, added support for requesting to be notified of the event being dispatched during hook execution.
Updated coverage, introduced new Makefile :)
Moved Agent API to HTTP logic, as it's not really related to anything but HTTP. Further session cleanup and new flag to control backend storage of sessions through the Model API and related adapter apparatus. Cleaned up HTTP logic to address namespacing problems. Removed annoying message from Model API that was printed each model put().
Providing request to scan context for Agent API.
General cleanup, especially of HookResponder wraps. Also fixed issue with DI bindings not making it through responder wrappers.
Full support for namespaced paths, and magic code to provide DI-style resolution of those dotted paths. Now, you can mount things on basically *any* path, and the CallbackProxy is smart enough to fallback past its local binding to cascade and resolve your request.
Runtime cleanup and finished refactor of event hook dispatch.
Detection logic for agent fingerprint and capabilities.
Cleaned up DI responder.
Fixing issue with object type for response headers.
Forcing UTF-8 for header names and values.
Removing `Vary: Accept-Encoding` header. It's a dupe.
Merge pull request #1 from keenlabs/feature/agent-api

Agent API & Runtime Refactor