Add event handlers support

{pre,post}{Read,Write(Exception)?} handlers are called at the
appropriate times during request processing.
getContext() is called first and it's return value is used as the
context argument of the above calls.