Restructured to remove more singletons: added browser reference to Window & WindowList instances; add Window reference to SameWindowLoaderStrategy; refactored Document to take a reference to the current Window; collapsed SingleWindow::Window into Window. Updated SameWindowLoaderStrategy to maintain the current document in the window if it can be loaded for the condition. Added deprecation warnings. Added support for visiting documents using an arbitrary URL. Moved Document URL check as part of load ensuring out of Document and into Window#load.