Disallow duplicate bindings of struct fields

Closes #9725
Improve various Vim syntax highlighting things.

- Implement comment nesting (the implementation is quite ugly at present
  and is not quite correct; note the big comment in that area).

- Highlight invalid escape sequences as errors.

- Fix up various inconsistencies and incorrectnesses in number
  highlighting.

- Update prelude items (``std::io::{Buffer, Writer, Reader, Seek}``).

- Highlight the ``proc`` keyword.

- Remove %-formatting sequence highlighting (a relic of old formatting).

- Don't highlight TODO in strings (it's unconventional).
Don't infinitely recurse in a process test

Note entirely sure how this is passing at all today, but regardless this fixes
the problems seen in #10790
Move std::util::ignore to std::prelude::drop

It's a more fitting name for the most common use case of this function.
auto merge of #10776 : alexcrichton/rust/issue-9725, r=pcwalton

Closes #9725
auto merge of #10783 : sfackler/rust/drop, r=alexcrichton

It's a more fitting name for the most common use case of this function.
auto merge of #10793 : chris-morgan/rust/2013-12-04-vim-updates, r=Aatch

- Implement comment nesting (the implementation is quite ugly at present
  and is not quite correct; note the big comment in that area).

- Highlight invalid escape sequences as errors.

- Fix up various inconsistencies and incorrectnesses in number
  highlighting.

- Update prelude items (``std::io::{Buffer, Writer, Reader, Seek}``).

- Highlight the ``proc`` keyword.

- Remove %-formatting sequence highlighting (a relic of old formatting).

- Don't highlight TODO in strings (it's unconventional).
auto merge of #10794 : alexcrichton/rust/issue-10790, r=alexcrichton

Note entirely sure how this is passing at all today, but regardless this fixes
the problems seen in #10790 

Closes #10790