std: add micro optimization to vec.with_c_str_unchecked

before:

test c_str::bench::bench_with_c_str_unchecked_long ... bench: 361 ns/iter (+/- 9)
test c_str::bench::bench_with_c_str_unchecked_medium ... bench: 75 ns/iter (+/- 2)
test c_str::bench::bench_with_c_str_unchecked_short ... bench: 60 ns/iter (+/- 9)

after:

test c_str::bench::bench_with_c_str_unchecked_long ... bench: 362 ns/iter (+/-
test c_str::bench::bench_with_c_str_unchecked_medium ... bench: 30 ns/iter (+/- 7)
test c_str::bench::bench_with_c_str_unchecked_short ... bench: 12 ns/iter (+/- 4)
std: Remove `unsafe` from `ToCStr.{to,with}_c_str_unchecked`

It makes sense for ToCStr to have the default conversion to error out if the
string has null characters, but there are C apis out there that are written to
handle interior nulls in C strings.  These typically also take a length as part
of the api. We make sure that our CStrs always have a trailing null, so there's
no risk of a C function reading past the end of the string (unless they do it
on purpose). Given that I couldn't find a GCC or Clang warning that would
complain about "foo\0bar", I don't feel that the "_unchecked" variants should
be considered unsafe, just inappropriate in most cases.