Allow poster to be changed after init. Fixes #525
When poster() is called with a URL, fire a `posterchange` event to update the PosterImage source and update the video element attribute.

Trigger posterchange after updating the tech
Wait until the tech has updated its poster image before alerting components so they don't see the intermediate state in event handlers. Remove unused variable from PosterImage.createEl.

Don't create new img elements each time the poster is set on ie8
Create the img fallback for the poster during PosterImage initialization on ie8 so we can avoid having to check and possibly create it each time the src is set. Add a test to ensure that new elements are not appended to the poster component when the img fallback is in use and the src attribute is modified.

fixing a broken IE8 test, and adding a negative test, for poster switching.

modified the poster-switching test to accomodate IE8
added a negative test for an undefined poster

fixed the assertion message in the 'undefined' image case

fixed test breakage in Firefox and IE10 (quotes were not being handled properly in the test data)

testing:
ran the tests at the command line, and in Chrome, Firefox, IE8, IE10, Firefox and Safari
all passed
Fix typo in test description
availble -> available
Don't use minifiable player methods in fullscreenToggle
Use string literals to lookup fullscreen-related methods on the player object in the fullscreenToggle component. Otherwise, closure compiler replaces them with minified method names and makes it impossible to supply a simpler "player" object with customized fullscreen logic for the fullscreenToggle to interact with.
Use externs to prevent obfuscation
Instead of using string literals, create an externs file for the player and use that to ensure fullscreen functionality is never minified.
Modified tests for #838 and updated changelog. closes #838
Close GH-815: Export text tracks.
Adding line to CHANGELOG
Added a test for the posterImage source getter
Close GH-845: Move player id generation.
Adding line to CHANGELOG
Close GH-850: Use qunitjs through npm.
Adding line to CHANGELOG
Close GH-862: Add util namespace.
Adding line to CHANGELOG
Exported util namespace and mergeOptions
Merge branch 'hotfix/player-externs' of git://github.com/dmlap/video-js into dmlap-hotfix/player-externs

Conflicts:
	Gruntfile.js
Added note to fullscreen externs test
Close GH-861: Bug/callstack gh 860. Fixes #860
Adding line to CHANGELOG
Make textTracks an extern
TextTracks are queried during player initialization whether they're present or not so the method must be present on Player objects. Make sure the method name isn't minified so it's possible to create a Player object without having to extend videojs.Player directly.