Bug 1077652 - SessionStore should accept :setupSyncHandler and :update messages from browsers without tabs

By making SessionStore accept :setupSyncHandler and :update messages from <xul:browser>s without a tab assigned we can preload a <xul:browser> in the background and assign a tab later. SessionStore will have the correct sync handler and know about the current content loaded in that browser. If the browser will never be assigned to a tab the received data will simply be discarded when the browser goes away due to the use of WeakMaps in SessionStore.
Bug 1077652 - Link a preloaded <xul:browser> to a newly created tab instead of swapping docShells
Bug 1077652 - Remove old BrowserNewTabPreloader and fix tests
fix the leaks
make _createBrowser() accept options
Revert "Bug 794041 - fix test_docload.html to expect accessibles to come from people stuffing stuff in the hidden window; r=surkov"

This reverts commit 59a733eb6f0c5e31b7a1153d03f0447cd5ba3e9f.
fix a11y test
fix background capture test