Needed for some modes to load. Closes #2054
Fixes #2011 in at least IE8+. When the resize-to-content styles are applied along with a removal of vertical padding on .CodeMirror-lines, IE would not display any content. Using `offsetWidth` instead of `clientWidth` fixes this for modern-ish IE. A more complex solution is needed to solve it for older browsers.
... to make a single-click pick a hint option instead of just selecting it.
All tests now check whether indentation from mode corresponds to the indentation in the test source. test.indentation is gone.
Passing options causes issues in jshint since lint options are also passed. These options cause bad option errors in the annotation list.
Add getHelpers and registerGlobalHelper, allow modes to specify arrays of helper names, support modeProps in mode specifications. Update foldcode and show-hint to make use of more powerful helper system by defining an `auto` helper that tries multiple helpers, and using that as default.
Using the cursor itself was awkward already, but turns out to also have strange effects (it was somehow treated as having height: 0 in some situations, by all browsers).