Tweak from_utf8_lossy to return a new MaybeOwned enum

MaybeOwned allows from_utf8_lossy to avoid allocation if there are no
invalid bytes in the input.
Implement BytesContainer for MaybeOwned
Delete send_str, rewrite clients on top of MaybeOwned<'static>

Declare a `type SendStr = MaybeOwned<'static>` to ease readibility of
types that needed the old SendStr behavior.

Implement all the traits for MaybeOwned that SendStr used to implement.
Rewrite path::Display to reduce unnecessary allocation