Improve helper system

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.
[css mode] Refactor, step 1 (tokenizer)
[css mode] Refactor, step 2 (state machine)
[css mode] Refactor, step 3 (Less support)
[css mode] Add a hintWords helper value
[css-hint addon] Rewrite to work with overhauled css mode
[css mode] Fix bad context management

Closes #2046
[css mode] Tweak indentation when opening @media block on new line

Closes #2047
[javascript-lint addon] Put JSHint options in a sub-object

Passing options causes issues in jshint since lint options are also
passed. These options cause bad option errors in the annotation list.
[css mode] Fix tokenization of paren-wrapped values

Closes #2048
[css mode] Fix previous fix (d3c3a5a2b8df669ed12fe90df4d62a143c0a9d25)

Issue #2048
[css mode] Revise indentation model

Issue #2049
[javascript mode] Fix bug in parsing of array/iterator comprehension
[test driver] Different approach to indentation tests

All tests now check whether indentation from mode corresponds
to the indentation in the test source. test.indentation is
gone.
[coffeescript mode] Allow single-quote-character strings to span lines

Closes #2050
[show-hint addon] Add completeOnSingleClick option

... to make a single-click pick a hint option instead of just
selecting it.
Fix IE showing empty with 0 padding and resize-to-content

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.
[runmode addon] Add resolveMode and registerHelper shims

Needed for some modes to load.

Closes #2054
[markdown] Lists after atx headers should be highlighted

Closes #2040
[markdown] Specify type of list when highlightFormatting is enabled

Closes #2039