fix for too many buffering events by tying it to the timer event
variable to test for buffer on video as well
New VAST plugin for preroll ads
a more generic preroll ad plugin that any other ad plugin can use.
split VAST plugin into two parts
fixed Skip button (ad -> ads)
added Impression tracking
checking for media type on the video
updated progress
Properly clean up player when calling MediaElementPlayer.remove()

Some features manipulate elements outside the player container
(including but not limited to attaching events to `document` and
`window`), which are not properly reversed when calling
`MediaElementPlayer.remove()`.

This commit does the following changes to enable easy cleanup:
- features can now specify cleanup routines, named 'clean' + feature
name;
- `mejs.players` is now a hash keyed by the players' IDs;
- new `MediaElementPlayer` methods: `globalBind()` and
`globalUnbind()`, which are simple wrappers to event (un)binding to
`document` and/or `window` that use the player ID as a namespace.
Add a few basic Jasmine tests

 * SpecRunner-Player runs some basic tests on the player
 * SpecRunner-CreateRemove tests for Issue #670

Note: the tests run directly on the individual .js files rather than
on the catenated or minified files.  That could be easily changed,
but it's nice to be able to run a test, make a fix, and just reload
the browser.
Don't spill vars to the global scope
Play nice with code outside MEP
Make possible to open youtube links as audio only

This add to youtube plugin the ability to open youtube links as audio only (without image, only the control panel)
Fix cleanup on the shim as well
_Any_ non-native media elements should be removed
When a player is removed the internal array is updated.

Bug fixed: When the player's "remove" function is called it doesn't
remove the internal reference to the removed player. When the
pauseOtherPlayers option is true, the player being used is flash and the
flash dom element has been removed an error is thrown when the next
video is played.
Adding mejs-shim class to shims to prevent improper resizing
Fixing indentation
If you specify the duration it now sticks