Update to CodeMirror 3 and start to ship our components

The main purpose of this branch is the update to CodeMirror 3 and ship it as a bower component. Because CodeMirror doesn't use proper semantic version tags, we have created a CodeMirror ipython fork.  The sole purpose of this fork is for us to maintain properly named tags that bower can install from.

As a side effect of these changes, we are now shipping in place all bower components that we are using (bootstrap, less. codemirror, jquery).  BUT, the version of jquery in components is not yet being used as we are still stuck with the old version attached to the nasty jquery.ui branch we ship.  In a later PR, we will need to get rid of that jquery.ui branch (replace those capabilties with bootstrap) and then move to a stable version of jquery.ui that matches that of the jquery component depended upon by bootstrap.

The transition to CodeMirror 3 is a bit of a pain - lots of things broke.  In particular the input cell styling, tooltip and completer broke.  I think I have fixed it all, but we need to go over these things with a pixel-perfect eye - alignments of all input/output text - subtle padding/margin changes, etc.

This PR replaces PR #2944