Move player id generation
If the video element has a id attribute when video.js was created, it used that as the player id. If the video did not have an id, however, the player would get an auto-generated component id that started with "undefined_..." and the player element received a id like "vjs_video_...". This change modifies the player init order so that the video element is given an autogenerated id early in the process, which is then picked up by the player component when it gets around to initialization. This unifies the player component id and tag id and is more consistent with the structure created when a video element with a user-defined id is passed in.
Merge branch 'hotfix/missing-ids' into hotfix/internal-fullscreen-apis
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.