Enhanced defer block events

Enhanced `defer` block load events to attach additional information to each event (specifically the defer block context and the nunjucks signature), as well as to fire an event on failure to load (`fragment_load_failed`). This allows clients to perform more robust event handling when a defer block finishes loading, without resorting to manually rendering the defer block contents.

Originally implemented in [this commit](https://github.com/cvan/galaxy/commit/f9ef1fb9e861fea610ba0ccda2e6c4099b25760e) from [galaxy/144](https://github.com/cvan/galaxy/pull/144), uplifted to commonplace as suggested by @cvan. See [this](https://github.com/cvan/galaxy/commit/f9ef1fb9e861fea610ba0ccda2e6c4099b25760e#diff-9e755bb262a8cce692b229d6e2d8b3caR88) for an example of how it can be used and why it's useful.