iter: fix range docstrings
iter: replace comment with a docstring
iter: move Counter impl to the proper place
auto merge of #9198 : FlaPer87/rust/shared-port, r=cmr

SharedPort implementation was missing in std::comm. Since this module
also wraps SharedChan, it makes sense to have SharedPort defined there
as well.
iter: add `RangeStep` and `RangeStepInclusive`
Kill off method impls made redundant by default methods.
These impls, at least, can be avoided by deriving Ord.
auto merge of #9199 : thestinger/rust/range_step, r=cmr

My focus was on getting these to be correct in all cases by handling overflow properly. I'll clean them up and work on the performance later.
auto merge of #9200 : lkuper/rust/libsyntax-cleanup, r=luqmana
fix range_step{,_inclusive} with negative step
iter: fix `range_inclusive` when `start > stop`
iter: fix `RangeInclusive`'s `DoubleEndedIterator`
Use std::iter::range_step

Use the iterator version instead of the old uint::/int::range_step
functions.
std::num: Remove `range_step` for each numeric type

Replaced by `std::iter::range_step`
rustpkg: Always write a package_id attribute into the link metadata

For some reason, I thought it wasn't necessary to write the package_id
attribute (which rustc's filesearch checks when searching for a package)
if the package ID had a single component (like "foo") as opposed to multiple
components (like "foo/bar/quux"). This meant that
`extern mod quux = "an-awesome-library";` didn't work, even if an-awesome-library
existed in the RUST_PATH.

Fixed it.
remove old internal iterator range tests

The cases they test are well covered in the `std::iter` tests.
rm some uses of the `advance` iterator method
auto merge of #9179 : catamorphism/rust/rustpkg-package-id, r=catamorphism,metajack

r? @metajack - This solves the problem you were having earlier with things like ```extern mod geom = "rust-geom";``` (or something like that).
iter: add the edge case tests for `range` too
auto merge of #9203 : thestinger/rust/range_step, r=huonw