Change $exoweb logic such that callback execution occurs in a more consistent order.

The order is now extendContext, contextReady, activate, and domReady, regardless of when callbacks were registered. Previously in some cases they could execute in groups per call to $exoweb, which would mean that a domReady callback could execute before a contextReady callback.

Tests added with this change:

* Context ready is not fired until embedded data is processed.
* All context ready callbacks should fire before all DOM ready callbacks fire.