Move all *Context classes from being static/inner classes

Pulled this out from #128, supplants #125.

Moving the static inner *Context classes to be top-level classes eliminates the problems with binding variable resolution encountered when using DELEGATE_FIRST as the resolveStrategy. Yay!