* handler: Implement prototype of new locking back-end
* memorylocker2: Switch to channel for release notification
* handler: Update locker interface
* handler: Add method to close body with error
* memorylocker: Replace with new implementation
* filelocker: Adjust methods to match interface
* handler: Introduce new httpContext
* handler: Implement upload interruption
* handler: Adjust tests to new inferfaces
* handler, memorylocker: Cancel context to avoid leaks
* ci: Remove plugin hook handler
* Rework error type from interface to struct
* Avoid writing to http.ResponseWriter directly
* Allow hooks to modify response
* Add example for HTTP hooks using Python
* Implement new plugin system using Hashicorp/go-plugin
* Enable returning partial HTTPResponses
* Remove some (unnecessary) error handling
* Forward stdout and stderr from plugin to tusd
* docs: Update examples
* cli: Update filehooks to new system
* cli: Renovate gRPC hooks
* docs: Correct casing of gRPC
* misc: Documentation, better examples, and code structure