rustc: Convert lang_items hashmap to use &'static str keys
rustc: Convert lang_item to use an iterator
std::rt::uv::net: Enable tests on Win32

Closes #8815.
reduce heap allocations for MemoryMap
auto merge of #9614 : blake2-ppc/rust/lang-item-iter, r=alexcrichton

Cleanup in middle::lang_items

Use static string keys in the lang item hashmap, and convert
the traversal function to be an iterator.
auto merge of #9616 : klutzy/rust/win32-uv-test, r=huonw

Closes #8815.
auto merge of #9619 : toffaletti/rust/mmap, r=huonw
Add new lint: non_uppercase_pattern_statics, for #7526.

This tries to warn about code like:
    ```rust
    match (0,0) {
        (0, aha) => { ... },
        ...
    }
    ```
where `aha` is actually a static constant, not a binding.
Throwing in another interesting test case: There is no need to warn
about constants that are (non-trivial) paths rather than just
identifiers, regardless of what case their characters are.