std: Fix search-and-replace typos
rustpkg: Extract version number from git, as per #5684

For now, the test I added just checks that PkgId::new parses the
version number out of a git repo's tags list, where relevant.
librustc: Allow adding static fn's in multiple impl's.
Add test for #4228.
rustpkg: Accept package IDs like github.com/foo/bar#0.3

If the package ID is of the form s#v, where v is a valid version
string, fetch tag v of that package.
auto merge of #6904 : catamorphism/rust/rustpkg_version_vcs, r=catamorphism

r? @brson
auto merge of #7029 : luqmana/rust/issue-4228, r=catamorphism

Fixes #4228
std: replace str::each_split* with an iterator
std: replace str::all/any fns and methods with iterators
std: remove str::{len, slice, is_empty} in favour of methods.
std: fix windows compile