combined RequestExecutingContext and CommandExecutingContext; changed to use thread local to reuse context objects instead of by pool