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

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 828895 - keyboard navigation in the Library View is bogus.
r=Mano