Bug 777385 - Support (some) Paris bindings objects as weak map keys. r=peterv, a=lsblakk

This adds support for many kinds of Paris bindings objects as weak map keys.
This patch supports nsISupports objects as well as non-cycle-collected
non-nsISupports objects. What is needed for support is to preserve any wrapper,
if the object is wrapper cached. In other cases, we don't need to do anything.
Bug 824658 - Avoid infinite decode loops of images by switching some GetFrame calls to GetFrameNoDecode. r=joe, a=akeybl
Bug 827541 - Traverse/Unlink nsGlobalWindow::mAudioContexts. r=ehsan, a=lsblakk
Bug 827541 - Follow-up: Make sure that the test case actually instantiates an AudioContext object the first time, as opposed to just access the constructor function through a property access. a=lsblakk
Backout bug 677092 due to bug 818468. a=bajaj
Bug 830396 - Add back nsIDOMCSSValueList. r=bz, a=akeybl
Bug 830205 - Stop the Download button from showing progress remaining after downloads completed if browser.download.panel.removeFinishedDownloads=true. r=paolo, a=akeybl
Bug 828815 - Restore functionality of | SVGElement[onxxx] = Function. r=bz, a=bajaj
Bug 830329 - Fix the enabled state of the clear downloads command (was: Clear Downloads button is disabled if the view is not focused). r=mak, a=lsblakk
Bug 830064 - The new downloads view does not support drag and drop. r=mak, a=akeybl
Bug 829416 - SocialAPI ambient panel appears in middle of screen when toolbar is in Text mode. r=mixedpuppy, a=lsblakk