libglob: allow "." and ".." to be matched

... also don't read the whole directory if the glob for that path
component doesn't contain any metacharacters.

Patterns like `../*.jpg` will work now, and `.*` will match both `.` and
`..` to be consistent with shell expansion.

As before: Just `*` still won't match `.` and `..`, while it will still
match dotfiles like `.git` by default.
libglob: only return dirs for globs ending in /

`foo.txt/` should not return `foo.txt` if `foo.txt` is in fact a text
file and not a directory.
Update an obsolete comment about conditions
auto merge of #13399 : SimonSapin/rust/patch-8, r=cmr
std: use a `match` in `assert_eq!` to extend the lifetime of the args.

This enables

    assert_eq!(foo.collect::<Vec<...>>().as_slice(), &[1,2,3,4]);

to work, by extending the lifetime of the .as_slice() rvalue.
collections: replace all ~[T] with Vec<T>.
rustc: Prevent repeated moves out of proc upvars

This fixes the categorization of the upvars of procs (represented internally
as once fns) to consider usage to require a loan. In doing so, upvars are no
longer allowed to be moved out of repeatedly in loops and such.

Closes #10398
Closes #12041
Closes #12127
auto merge of #13383 : ben0x539/rust/glob-dots, r=brson

Fixes #12930.
Emit intrinsic lazily
auto merge of #13413 : alexcrichton/rust/once-fn-move, r=brson

This fixes the categorization of the upvars of procs (represented internally
as once fns) to consider usage to require a loan. In doing so, upvars are no
longer allowed to be moved out of repeatedly in loops and such.

Closes #10398
Closes #12041
Closes #12127
Remove the unused Point struct in the assert-eq-macro-fail.rs test.
libstd: Implement `StrBuf`, a new string buffer type like `Vec`, and
port all code over to use it.
auto merge of #13436 : pongad/rust/lazyemit, r=thestinger

Fixes #11926
auto merge of #13437 : kaseyc/rust/remove_unnecessary_struct, r=sanxiyn

Removes the unused Point struct from assert-eq-macro-fail.rs.
rustc: rename ty::vstore and its variants to UpperCamelCase.
rustc: use VstoreFixed's length in crate-independent type hashes.
rustc: move mutability from ty_vec and ty_trait to VstoreSlice and RegionTraitStore.
auto merge of #13350 : huonw/rust/devec-collections, r=alexcrichton

collections: replace all ~[T] with Vec<T>.
debuginfo: Improve source code position assignment for inlined functions.

This commit makes sure that code inlined from other functions isn't assigned the source position of the call site, since this leads to undesired behavior when setting line breakpoints (issue #12886)
debuginfo: Implement discriminator type metadata re-use.

An optimization for sharing the type metadata of generic enum discriminators between monomorphized instances (fixes issue #12840)