Made to_X_sstring() not allocate more memory than it needs to.
Improved documentation a bit, saying what happens when dest's string isn't big enough
Documented that empty SString means it's zeroed.