test: Remove all uses of `~str` from the test suite.
libworkcache: Remove all uses of `~str` from `libworkcache`.
libuuid: Remove all uses of `~str` from `libuuid`.
libhexfloat: Remove all uses of `~str` from `libhexfloat`
libarena: Remove all uses of `~str` from `libarena`
libregex: Remove all uses of `~str` from `libregex`
libgraphviz: Remove all uses of `~str` from `libgraphviz`.
liblog: Remove all uses of `~str` from `liblog`
libglob: Remove all uses of `~str` from `libglob`
libsemver: Remove all uses of `~str` from `libsemver`
libtime: Remove all uses of `~str` from `libtime`
librand: Remove all uses of `~str` from `librand`
libsync: Remove all uses of `~str` from `libsync`
libtest: Remove all uses of `~str` from `libtest`.
libterm: Remove all uses of `~str` from `libterm`
liburl: Remove all uses of `~str` from `liburl`
libcollections: Remove most uses of `~str` from `libcollections`
libnum: Remove all uses of `~str` from `libnum`
auto merge of #14170 : pcwalton/rust/detildestr-misclibs, r=alexcrichton

r? @brson
Make Vec.truncate() resilient against failure in Drop

If a vector element fails in Drop, Vec needs to make sure it doesn't try
to re-drop any elements it already dropped.