Implement document load tracking.

Improves on the state of the art for #1416. Images, XHR, stylesheets, and scripts now block the document load event from firing, and DOMContentLoaded is dispatched after parsing is complete.
What's the relationship of a `DocumentLoader` to the browsing context concept and the concept of a document? Why are blocking loads tracked on a `DocumentLoader` object and not on a `Document` object? If the user navigates away from a document before the `load` event for the document has fired, what happens to the `blocking_loads` vector on the `DocumentLoader`.