libstd: Implement `StrBuf`, a new string buffer type like `Vec`, and
port all code over to use it.
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.
Document the nullable pointer optimization in the FFI guide

Closes #8748
Fix tests. Add Vec<u8> conversion to StrBuf.
Register snapshots.

This is the first snap based on mingw-w64.
auto merge of #13440 : huonw/rust/strbuf, r=alexcrichton

libstd: Implement `StrBuf`, a new string buffer type like `Vec`, and port all code over to use it.

Rebased & tests-fixed version of https://github.com/mozilla/rust/pull/13269
std: Be sure to call pthread_attr_destroy

On some OSes (such as freebsd), pthread_attr_init allocates memory, so this is
necessary to deallocate that memory.

Closes #13420
auto merge of #13451 : cmr/rust/doc-ffi, r=brson

Closes #8748
rustc: fix the fallout from moving mutability into VstoreSlice and RegionTraitStore.
auto merge of #13453 : brson/rust/snappies, r=alexcrichton

This is the first snap based on mingw-w64.
auto merge of #13457 : alexcrichton/rust/issue-13420, r=thestinger

On some OSes (such as freebsd), pthread_attr_init allocates memory, so this is
necessary to deallocate that memory.

Closes #13420
auto merge of #13424 : eddyb/rust/ty-mut-in-store, r=nikomatsakis

Cleans up some remnants of the old mutability system and only allows vector/trait mutability in `VstoreSlice` (`&mut [T]`) and `RegionTraitStore` (`&mut Trait`).