Simplify: use iterable getter to handle windows
Also this should be faster (and use less memory), if we don't need all windows
Improve error message, if forgetClosedTab() failed
Actually this log error for each blank tab (because browser don't save them)...
Correctly show button after last tab, if used "CustomizableUI" API
(#121)
Add debug logs about closing window with last private tab(s)
Don't check for last private tab in closing windows:
we check it in windowClosingHandler()
Correctly handle private tabs in cloned windows in Firefox 29.0a1
Testcase:
var ss = (
	Components.classes["@mozilla.org/browser/sessionstore;1"]
	|| Components.classes["@mozilla.org/suite/sessionstore;1"]
).getService(Components.interfaces.nsISessionStore);
var state = ss.getWindowState(window);
var win = window.openDialog(
	getBrowserURL(),
	"_blank",
	"chrome,all,dialog=no"
);
win.addEventListener("load", function restoreSession(e) {
	win.removeEventListener(e.type, restoreSession, false);
	win.focus();
	ss.setWindowState(win, state, true);
}, false);