Upgrade TinyMCE and switch to CodeMirror plugin

High Level Description: new version of TinyMCE and change to get rid of the tabbed TinyMCE/CodeMirror editors in favor of a CodeMirror plugin within TinyMCE (triggered from toolbar).

Details:

1) Started with commits in #2588. Includes deletion of old version of CodeMirror and submission of new version (4.0.16).
2) Includes CodeMirror plugin for TinyMCE (first submission), which has an Apache license.
3) Changes to the HTML edit.coffee file to stop managing switching between CodeMirror and TinyMCE editors (for editing raw HTML and WYSIWYG editing, respectively). Instead, use the CodeMirror plugin.
4) Rewriting of tests, and addition of integration tests for areas that previously weren’t tested.

Unfortunately, I had to edit the code of the CodeMirror plugin and the code for the link and image plugins for the following reasons:

CodeMirror plugin for TinyMCE
1) Needed to change paths of where CodeMirror files are expected to live to match how we store our vendor files. I am currently referencing the un-minified version of CodeMirror, but may change to minified after #2959 is merged.
2) Fire events when CodeMirror plugin is shown and saved so that we can swap out static links (in CodeMirror editor only, else user sees broken links appear in TinyMCE Editor behind the dialog).
3) Make sure to strip out the “caret” span that is being used to maintain caret position between TinyMCE and CodeMirror. There is a bug in the plugin that it doesn’t get removed if caret is in style block.

Image and Link plugins
1)  Fire an event when the plugin is closed (via OK) so we can rewrite links in TinyMCE view.

Currently no events are fired when a Plugin is triggered or when it goes away. I have submitted a feature request to TinyMCE for this.  http://www.tinymce.com/develop/bugtracker_view.php?id=6799

I also posted a comment on the web page for the CodeMirror plugin about the bug related to the caret positional span.

Places to test:
1) HTML module components on unit page
2) Static Pages
3) LMS bulk emailer on the Instructor dashboard
4) Check that annotations usage of TinyMCE is not broken in LMS

New test coverage added (integration):
1) Test for style block being maintained (STUD-1434)
2) Test that all expected toolbar buttons/dropdowns are present.
3) Test for code format toolbar button
4) Test for rewriting of links after using link plugin (test already existed for image plugin).

I have deployed this branch to http://studio.cahrens.m.sandbox.edx.org/

Code reviewers-- you may now start your engines.
1) @marcotuts Can you visually review the CSS (talk to @frrrances about how it was generated)
2) @andy-armstrong and @nasthagiri will do an in-person review with me
3) @dcadams Can you take a look?
4) @mhoeber Will need documentation updates. I did the same bug fix for the link editor as @dcadams had done for image editor.