Disallow duplicate bindings of struct fields

Closes #9725
Search for libfoo.a on windows as well as foo.lib

Turns out LLVM only builds libfoo.a libraries, so we're going to need this logic
to statically link librustc
Fix a bug in exporting trait implementations

I used the wrong condition where I was looking for "is this method public or is
this implementation a trait" rather than what was being checked.
Fix the comments for libsyntax::parse::parser::parse_sugary_call_expr

The comments on this function date back from when it was used for `for`
expressions in addition to `do` expressions.
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 #10785 : alexcrichton/rust/omg-i-hate-windows, r=pcwalton

Turns out LLVM only builds libfoo.a libraries, so we're going to need this logic
to statically link librustc
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.
std::str: remove from_utf8.

This function had type &[u8] -> ~str, i.e. it allocates a string
internally, even though the non-allocating version that take &[u8] ->
&str and ~[u8] -> ~str are all that is necessary in most circumstances.
std::str: s/from_utf8_slice/from_utf8/, to make the basic case shorter.
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
Decode a float into integers

The `integer_decode()` function decodes a float (f32/f64)
into integers containing the mantissa, exponent and sign.

It's needed for `rationalize()` implementation of #9838.

The code got ported from ABCL [1].

[1] http://abcl.org/trac/browser/trunk/abcl/src/org/armedbear/lisp/FloatFunctions.java?rev=14465#L94
auto merge of #10788 : alexcrichton/rust/fixes, r=pcwalton

I used the wrong condition where I was looking for "is this method public or is
this implementation a trait" rather than what was being checked.
rewrite of shootout-reverse-complement.rs

This version is inspired by the best version in C by Mr Ledrug,
but without the parallelisation.
auto merge of #10701 : huonw/rust/rm-from_utf8, r=brson

This function had type &[u8] -> ~str, i.e. it allocates a string
internally, even though the non-allocating version that take &[u8] ->
&str and ~[u8] -> ~str are all that is necessary in most circumstances.
auto merge of #10792 : kballard/rust/parse_sugary_call_expr-comments, r=alexcrichton

The comments on this function date back from when it was used for `for`
expressions in addition to `do` expressions.
rewrite part of the tutorial

This begins a rewrite of some sections the tutorial as an introduction
to concepts through the implementation of a simple data structure. I
think this would be a good way to introduce references, traits and many
other concepts too. For example, the section introducing alternatives to
ownership can demonstrate a persistent list.