Refactoring Session.

Reimplementing current_* variables in terms of controller stack inspection.

MODEL: the central feature of Session will be the controller stack; almost
everything else can be derived from controller stack inspection.