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
When an impl references an unknown trait, mention what
the trait is called in the error message.
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
Add an EnumSetIterator and EnumSet::iter
Move most iter functionality to extra, fixes #7343
extra: docs, tests and new functionality for the extra::stats module
auto merge of #7517 : brson/rust/0.7, r=brson
global_heap: inline malloc_raw and add realloc_raw
vec: implement exchange vector reserve in Rust
global_heap: inline get_box_size and align_to
pass exchange_malloc an alignment, not a tydesc
Classify newtype structs S(T) as immediates if T is an immediate
Update verison numbers in README.md
auto merge of #7487 : huonw/rust/vec-kill, r=cmr

Continuation of #7430.

I haven't removed the `map` method, since the replacement `v.iter().transform(f).collect::<~[SomeType]>()` is a little ridiculous at the moment.
librustc: back::link::sanitize support esacpe_utf8
librustc: apply changes of char::escape_unicode