Adding "fluid" mode

This is a first pass at the ideas discussed in #982.
> The loaded metadata listener on the tag seemed to be firing correctly on html5 vids

In your code you're already listening to the player's loadedmetadata event (not the tag's), which bubbles up from the tech. So that part will work in all cases, including Flash. The problem is accessing the videoWidth property on the original tag. On iPhone's specifically, we have to rebuild the video element from scratch because the original breaks when we move it into the containing player div. Meaning `this.tag` will be nothing.

We'd just need to change `this.tag.videoWidth` to `this.videoWidth()`, which internally would call `this.techGet('videoWidth')` which would call the html5 tech's videoWidth() getter, which would return the current video element's videoWidth value. That's basically how all the API properties work.

> I think it's really useful to adopt some solid naming conventions here in as far as variable and method names

Yeah, we should definitely have clear naming. If there's areas internally we can be clearer I'm open to it. At the player API level we mimic the video element API as closely as we can. That API has `width` and `videoWidth` properties, meaning the video.js player should have the same, and they should operate a closely as we can get them to by default, across the different supported techs. If you think width should work differently then it does we can talk about changing it, but I don't think we should try to open that door in this PR.