smallint{map,set}: replace iterators with DoubleEndedIterator

Also changed the tests to iterate over sparse maps/sets.
Add tests for issues which can be closed

Closes #5275, $4547
str: Implement Container for ~str, @str and Mutable for ~str

~str and @str need separate implementations for use in generic
functions, where it will not automatically use the impl on &str.
rm obsolete no-op lints
syntax: print visibilities of foreign items
auto merge of #7921 : bytewiseand/rust/smallint-iter, r=huonw

Made the `iter` and `mut_iter` methods on SmallIntMap and SmallIntSet return double-ended-iterators. These iterators now implement `size_hint`.

Also the iterator tests only tested dense maps/sets, which aren't very useful. So they were changed to iterate over sparse maps/sets.

Fixes #7721
auto merge of #7923 : alexcrichton/rust/add-tests, r=graydon

Closes #5275, #4547
auto merge of #7932 : blake2-ppc/rust/str-clear, r=huonw

~str and @str need separate implementations for use in generic
functions, where it will not automatically use the impl on &str.

fixes issue #7900
syntax: Bless mod.rs. #4116

When loading a module the parser will look for either foo.rs or foo/mod.rs and generate
an error when both are found.
Merge pull request #7936 from thestinger/cleanup

rm obsolete no-op lints
auto merge of #7938 : crabtw/rust/foreign-vis, r=huonw
new snapshot
temporarily disable 3 rustpkg tests

Re-enabling these when the ephemeral failures are fixed is filed as
issue #7956.
auto merge of #7955 : thestinger/rust/snapshot, r=huonw
Allow all warnings in stage0 to account for bugs
auto merge of #7957 : alexcrichton/rust/ignore-warnings, r=thestinger

The new snapshot now enables this.
auto merge of #7926 : brson/rust/issue-4116, r=graydon

When loading a module the parser will look for either foo.rs or foo/mod.rs and generate
an error when both are found.
Make filename check for expected compile errors case insensitive on win32
Merge remote-tracking branch 'upstream/master'