tostring support for strings with \NUL characters

While `pushstring` supports strings with embedded \NUL characters, `tostring` does not. This means that we can push "A\NULB" and then peek to get "A" which is incorrect behaviour. This patch fixes that behaviour.