autosave interval is tuned based on the duration of saves.
Autosave will never happen more frequently than every 30 seconds,
and if saves take more than 3 seconds, autosave will fire every 10x the duration of the save (i.e. if save takes 6 seconds, it will be every 60 seconds, etc.)
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.
CM3 introduced a number of changes to how various paddings are set.
Because of how we change the line-height we had to set these back
to the CM2 values. What a pain!
This commit adds the right versions of:
* Bootstrap
* Jquery
* less.js
* CodeMirror
We should always use bower to manage these packages in the
future. BUT, we are not yet using this version of jquery as
we still rely on an older crazy-branch version of jquery.ui.