Allow context-like shift for app in hooks:

Before the context object was untangled, it used to be sent to hooks.
When we removed it, we sent the application object instead. The
problem is that hooks assumed they could call "app" method on the
context to receive the app. Now that the context object is the app
itself, this meant it would break all hooks. Damn it.

While we're working on cleaning up the different plugins that are
available, we're starting with adding a shim that will make the
current code in the wild still work.

    hook before => sub {
        my $ctx = shift;     # $ctx is actually the app
        my $app = $ctx->app; # returns itself
    };

Fixes GH #641.
reflect change
Merge branch 'feature/shim-for-context'