Don't reassign a global variable. (fix #741)

With the preference "dom.compartment_per_addon"="true", updated gBrowserInit._delayedStartup cannot reassign a global variable defined by Firefox itself.
Accessing it as a property of the global object is not forbidden for now.
Make the meaning of "tabsToRestore" clear
Read value of custom attributes of tabs via TSTBase.getTabAttribute() safely.

Tab's ID and other attributes saved via setTabValue is not available before the tab is completely restored.
As the result, TST sometimes fail to restore tab positions. (See: #676)
This issue doesn't happen on Firefox 24ESR, because recent Firefox (29 and later) uses message manager to restore tabs and it causes such "delay" of initializations about custom attributes.
Get new position safely
Revert "Read value of custom attributes of tabs via TSTBase.getTabAttribute() safely."

This reverts commit f4fb6174d264209c4db6d29c380e9bbecd6c0810.

This change breaks other features...
Restore tab position for "Undo Close Tab" command correctly on Firefox 29 and newer versions (#676)
Get actual stored tab id correctly (#676)
Update history topics and bump maxVersion to 33.0a1
Fix typo
Drop support for Firefox 30 or older versions.

Because Firefox 31 becomes new ESR.
Pull from upstream.