Make String formatting available without libstd

Fixes #14342.
Export vec!() from libcollections

Fixes #16806. The duplication of code with libstd is unfortunate, but there's
already a lot of that exported from core::macros.
Apply d3c831b to libcore's assert_eq!()
libcollections test suite fixes