Support let syntax for locals.

Required a changing of the AssertionContext API, it is now shared with
the Context which has less surprising behaviour (methods defined in a
context are available in the unit of work.)
Add documentation notifier and allow nil names to support it.