librustc: emit loop for expr_repeat instead of 2n instructions in [x, ..n]
Kill some warnings: unused imports and old #[deny(..)]s.
libcore: implement `str::each_char_reverse` correctly.

Previously, `each_char_reverse` was not iterating at all, so the
testcase never ran properly.
librustc: clean-up expr_repeat loop generation: use native integers
Expand on cleanups in trans for expr_repeat and add to tests.
auto merge of #5524 : luqmana/rust/repeat-loop, r=pcwalton

`let v = [24, ..1000];` now more or less emits the same IR as:

```Rust
let mut i = 0;
while i < 1000 {
    v[i] = 24;
    i += 1;
}
```

LLVM will still turn it into a memset if possible with optimization on.
auto merge of #5525 : dbaupp/rust/minor_fixups, r=graydon

Kills some warnings, and implements str::each_char_reverse so that it actually iterates. The test case wasn't detecting a failure, since the loop body was never executed.
Silence various warnings

Remove uses of #[deny(deprecated_self)] and also remove a number of unused
imports for testing and not testing
syntax: Removing uses of HashMap
doc: Remove mentions of oldmap::HashMap
rustc: Remove uses of oldmap::HashMap
rustc: Purge of HashMap, fixing segfaulting cases

Various XXX comments added around to denote copies which when removed cause the
compiler to segfault at some point before stage2. None of these copies should
even be necessary.
test: Remove uses of oldmap::HashMap
Move ast_map::map to LinearMap
std: Remove the oldmap module