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

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 - tabbrowser should ignore DOMTitleChanged events from browser that have no tab assigned r=dao
Bug 1077652 - Fix search tests to ignore loads from browsers without tabs
[TODO] Bug 1077652 - Introduce new preloading mechanism
[TODO] Bug 1077652 - Update browser_newtab_background_captures.js to work with the new preloader
[TODO] Bug 1077652 - Revert change from bug 794041 that makes test_docload.html expect accessibles in the hidden window
[TODO] Bug 1077652 - Let the test_tabbrowser.xul a11y test know about the extra preloaded document
[TODO] Bug 1077652 - Remove old BrowserNewTabPreloader.jsm and references