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
libtest: rename `BenchHarness` to `Bencher`
Closes #12640
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`).
Add more type signatures to the docs; tweak a few of them.

Someone reading the docs won't know what the types of various things
are, so this adds them in a few meaningful places to help with
comprehension.

cc #13423.
auto merge of #13236 : liigo/rust/rename-benchharness, r=huonw

Closes #12640

based on PR #13030, rebased, and passed all tests.
auto merge of #13458 : huonw/rust/doc-signatures, r=alexcrichton

Add more type signatures to the docs; tweak a few of them.

Someone reading the docs won't know what the types of various things
are, so this adds them in a few meaningful places to help with
comprehension.

cc #13423.
Parameterize contains_nul for BytesContainer.
Simplify GenericPath::set_extension.