Bug 1085212: release video hardware before sharing and restore when done

Followup fix for bug 1088456: use playerShowing instead of playing so the patch works even if we are paused
My only concern here is 'needsRestore' is being overloaded such that the code is unintuitive. In the case of restoreVideo, it's very intuitive. In the case of releaseVideo, it's less intuitive ("If the video does not need to be restored, don't need to release it"). Here, "if the video doesn't need to be restored, go ahead and close it"... IMO -- not intuitive. Perhaps 'needsRestore' is more self-documenting as 'videoLoaded'?

With all that said, it occurs to me that restoreVideo should set playerShowing to true and releaseVideo should set it to false. I believe that is consistent with the semantics of 'playerShowing'. If that's the case, the above change adding '!needsRestore' won't be necessary.