ustring - avoid duplicate allocations for libc++ (as we do for gcc)

Like we've had for some time with gcc, we want to avoid the double allocations with libc++ as well.  Took a little bit of head scratching and diving into the libc++ header details, but I think I've got it.