Faster _WriteEncodedString* in trivial (standard?) case

Also contains some of the changes that I'd had making the number functions work reasonably with crappy processors (I haven't done any research other than empirical tests on this laptop but it appears that [at least] the Intel Core i3-2350M CPU doesn't do unsigned values very well (my work machine, of which I have no idea what it is, but it's better than that! doesn't suffer from such issues); which is why I have deferred to signed values where possible. I should probably have comments on there; but I don't, and I want to crash.

Anyway, the 'big' stuff here is the string stuff, where I have changed the test (!) to make it only 10% of the time use backslashes or quotes in strings (but I don't think this is a bad assumption really). But, I think you'll be happy with the results ;)

Hopefully my git merging has gone ok; looks like this pull request is noting all the merges I had merged from the upstream... Anyway....