Bug 837236 - share video decoding hardware among Camera, Gallery and Video

This is a big last-minute pull request to resolve the tef+ blocking bug 837236. The issue is that we are no longer allowing software decoding of videos, so only one <video> element can have its src specfied at a time, anywhere in the system. Only Camera, Gallery, and Video have permission to use the hardware, so these are the three that need to cooperate. This is tricky because both Gallery and Video used to create  a <video> element to parse metadata as soon as the Camera recorded a new video.

I've kept the commits separate because I think it might be easier to review in chunks.

I'll squash them before landing it though.