Alter handler protocol to use objects

With request methods instead of bare request closures.
This will allow us to alter the implementation to avoid closures and
recycle objects if necessary in the future.