changed PushString and ToString to work correctly when their argument contains NUL bytes