Remap magrittr keyboard shortcut
Merge pull request #150 from rstudio/bugfix/magrittr-pipe-shortcut

Remap magrittr keyboard shortcut
Multi-line autocompletion

Allow autocompletion in function calls spanning multiple
lines, e.g.

    install.packages(
        |

should trigger an autocompletion.
Only perform multiline completion with CTRL+SPACE
Tweaks to better handle roxygen comments, regular comments, $ completion
Some cleanup, renaming + better escape rules
Finish search if cursor on ':' as well
When completing x$... or x@..., surround with  if necessary
Make sure we get logical, not display, row
Ignore .tern-port (used for JavaScript auto-completion)
Only strip balanced quotes

Otherwise, auto-completion for paths (which occurs when we ask for
auto-completion within quotes) won't work.

Similarly, the string normalizer is no longer generic enough to live
within StringUtil.
Clean up 'in quotes' logic

We want to keep track of whether within 'some kind' of quotes; so we
don't allow ourselves to be both within single and double quotes (one or
the other). This helps the line normalization logic.

Similarly, normalize the first line as well.
Refactor + fix handling of non-syntactic R names
Make sure we update state after walking characters
Include a trailing space in autocompletion for most roxygen tags
compare on stripped line
Add logging for JavaScript objects as-is
Split 'string stripping', 'comment stripping' logic into StringUtil helper functions
Expose TokenCursor
Use TokenCursor to walk tokens for getting autocompletion context