rust.vim: Links previously unused rustFuncCall

This allows for highlighting of function calls
for free floating, member, and static functions.
simplify the exchange allocator

* stop using an atomic counter, this has a significant cost and
  valgrind will already catch these leaks
* remove the extra layer of function calls
* remove the assert of non-null in free, freeing null is well defined
  but throwing a failure from free will not be
* stop initializing the `prev`/`next` pointers
* abort on out-of-memory, failing won't necessarily work
add a contains_managed intrinsic
vec: use contains_managed instead of box header
auto merge of #7374 : Jeaye/rust/func_highlight, r=cmr

This allows for highlighting of function calls
for free floating, member, and static functions.
Change char::escape_{default,unicode} to take callbacks instead of allocating
strings
Specialize to_str_common for floats/integers in strconv

This allows the integral paths to avoid allocations on the heap

Closes #4424, #4423
auto merge of #7465 : alexcrichton/rust/issue-4432, r=cmr

This stems from trying to perform as few allocations as possible throughout the standard libraries.

This specializes the `ToStr` implementation for floats/ints separately because it's known that ints will have a maximum length (whereas floats could be very very large).

I also removed a `FIXME` to remove a malloc from the `to_str()` of floats in `repr.rs` because I think that this should be addressed elsewhere. I think that we may not be able to avoid it easily because floats can have such large representations, but regardless this should be a problem with the implementation of `float_to_str_bytes_common` now and not in the `Repr` module.
rustpkg: Ignore a test that's failing on the dist-snap bot
stop initializing ref_count in exchange_alloc

this is never read anymore
managed: rm RC_EXCHANGE_UNIQUE constant

this is no longer used, exchange allocations do not set ref_count
stop copying the tydesc in unique box take glue

the only user of the tydesc is ~fn, and it doesn't use this glue code
add a closure_exchange_malloc lang item

this makes the exchange allocation header completely unused, and leaves
it uninitialized
auto merge of #7495 : thestinger/rust/exchange, r=cmr

With these changes, exchange allocator headers are never initialized, read or written to. Removing the header will now just involve updating the code in trans using an offset to only do it if the type contained is managed.

The only thing blocking removing the initialization of the last field in the header was ~fn since it uses it to store the dynamic size/types due to captures. I temporarily switched it to a `closure_exchange_alloc` lang item (it uses the same `exchange_free`) and #7496 is filed about removing that.

Since the `exchange_free` call is now inlined all over the codebase, I don't think we should have an assert for null. It doesn't currently ever happen, but it would be fine if we started generating code that did do it. The `exchange_free` function also had a comment declaring that it must not fail, but a regular assert would cause a failure. I also removed the atomic counter because valgrind can already find these leaks, and we have valgrind bots now.

Note that exchange free does not currently print an error an out-of-memory when it aborts, because our `io` code may allocate. We could probably get away with a `#[rust_stack]` call to a `stdio` function but it would be better to make a write system call.
More 0.7 release notes
Bump version from 0.7-pre to 0.7
auto merge of #7517 : brson/rust/0.7, r=brson
Update verison numbers in README.md
librustc: back::link::sanitize support esacpe_utf8
librustc: apply changes of char::escape_unicode