Use path change listeners instead of events to observe media state changes
Use ownerDocument instead of just document; fix a few incorrect references.
Add a getElementsByTagName() method to mock elements
Add AbstractVideo tests
Add mock MediaController
Add initial MediaController tests