Issue #9629 -- permit freezing `&mut` found within an `&` pointer
Address nits for PR for #9629
Make main pub in test case (cc #9629)
Fix up float highlighting in Vim.

This fixes a regression introduced in #10793.

Having a colorscheme which highlights Float the same as Number (I
believe most do), I hadn't noticed that having the special case of "5."
floats (which was one of the added features in #10793) last made it take
precedence, and so it was left to @thestinger to notice it.

The regression meant that in `5.0`, the `5.` was a `rustFloat` (linked
by default to `Float`) and the `0` was a `rustDecNumber` (linked by
default to `Number`), and for `5.0f32` the `5.` was a `rustFloat` and
the `0f32` was a second `rustFloat` (and thus appeared correctly, though
for the wrong reason).
Vim keyword highlighting improvements.

- Removed the `log` keyword;
- Removed keyword duplicates;
- Highlighted `const` as `Error` rather than `StorageClass`; and
- Highlighted all the reserved keywords as `Error` rather than as
  `Keyword`.

(As usual, these highlightings can be overridden if desired.)
Fix test case harder (cc #9629)
Allow ref and mut modifiers for short form field patterns

Previously, if you wanted to bind a field mutably or by ref, you had to
do something like Foo { x: ref mut x }. You can now just do
Foo { ref mut x }.

Closes #6137
Deduplicate in syntax::parse::token with a macro.

I also renumbered things at the same time; ``in`` was shifted into its
alphabetical position and the reserved keywords were reordered (a couple
of them were out of order).
libextra: Another round of de-`Cell`-ing.

34 uses of `Cell` remain.
librustuv: RAII-ify `Local::borrow`, and remove some 12 Cells.
libstd: Remove some cells involved in
`deschedule_running_task_and_then`.
librustpkg: Make `io::ignore_io_error()` use RAII; remove a few more
cells.
libstd: Remove `Cell`s that were used because of `finally` by converting
their `finally` blocks to RAII.
compiletest: Remove uses of `Cell`.
librustdoc: Don't use `finally`, shaving off a `Cell`.
librustdoc: Remove a couple of `Cell`s.
libextra: Remove various cells involved in `Arc`s.

I could have done this by making `Arc` use RAII, but this is too
involved for now.
librustuv: Change `with_local_io` to use RAII.
libstd: Change `atomically` to use RAII.
libstd: Remove two uses of `Cell`.