Stop returning the empty string when the cstr! macro fails

Split off #28077 (moved):

from_bytes_with_nul returns an error if there is more than one nul byte in the string. ... Returning an empty string could be a source of subtle bugs.

Misuse is extremely unlikely to slip in since this is only used on string literals. But yeah, the ideal solution would be statically asserting at compile-time that the passed literal has no NUL bytes in it, so the only one is the byte being appended.

But defaulting to an empty string(in a case that is basically impossible to get) is the intentional documented behavior of the macro ever since it was first merged in #25185 (moved). Improving on that seems like a separate ticket.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information