Escape control chars when serializing string keys and values to JSON

 * Add tests for escaping of regular ASCII chars, whitespace,
   non-ASCII unicode characters and control characters.

 * Escape characters in U+0000..U+001F as per RFC 4627 Section 2.5

 * Optimize sanitizeString() - return a QByteArray directly and
   pre-allocate the minimum amount of space that will be required.

MD-20993

Fixes #70