Cleaned up and documented utility.string, made functions pure nothrow.