std: remove str::to_chars
std: replace str::substr with the method.
std: replace str::{starts,ends}_with with the method.
std: replace str::is_{alphanumeric,whitespace} with the methods.
fix tests, remove some warnings
auto merge of #7032 : huonw/rust/each-fn-kill, r=thestinger

Continuation of #7015, and #6995.

Rewrites the character-based `each_split` functions in `str` to use an iterator, removes a few redundant methods, and replaces all uses of `len`, `is_empty` and `slice` functions with the methods (and deletes the the functions).

Update: Ok, this has turned into a major makeover for `str`, turning a lot of functions into methods, and removing redundant ones. Each commit is essentially a single such change.

(Unscientific benchmarks suggest that the external `split_iter` is approximately 10% faster than the internal one. I'm not quite sure why this would be true.)

(@thestinger is probably interested in this.)
Remove all usage of the global LLVMContextRef

This allows parallel usage of the rustc library
Have JIT execution take ownership of the LLVMContextRef

Also stop leaking the ExecutionEngine created for jit code by forcibly disposing
of it after the JIT code has finished executing
librustc: Don't allow newtype or unit-like structs to shadow other names in the value namespace.
Replace str::raw::buf_as_slice with c_str_to_static_slice. Close #3843.
Remove 'this could be clearer' FIXME. Looks fine. Close #2618.
librustc: Better errors for duplicate definitions.
Add test for #7044.
Tag a bunch of destructors that need mutable self with FIXME for #4330. Close #4943.
debugged a compiler ICE when merging local::borrow changes into the main io branch and modified the incoming new file lang.rs to be api-compatible
terminfo: Support more terminfo directory structures

OS X's terminfo uses the hex representation of the first character of
the terminal name as the directory name.

Ubuntu seems to use /lib/terminfo instead of /usr/share/terminfo, at
least on the one machine I have access to.
auto merge of #7042 : kballard/rust/terminfo-searcher-paths, r=thestinger

r? @cmr
std::rt: Work around a dynamic borrowck bug
std: convert pow, hypot, atan2, log to take arguments by reference.
extra: implement .norm(), and Polar conversion functions for complex numbers.

Also, convert complex to use Clone, rather than Copy.

Fixes #5734 and #5735.