Use toString() when generating echo() messages (fixes #838).

When using the Value << operator, strings are encoded (e.g. a newline
character is encoded as \n), but echo() should output the text as given.
Add encoding of \r.
Add support for \x \u and \U escape sequences.

For all escape sequences the 0 byte is illegal and converted to a space.

\x supports only the range from 0x01 to 0x7F as the values greater or
equal to 0x80 could produce illegal UTF-8 sequences.

\u allows to specify unicode codepoints with exactly 4 hex digits.

\U allows to specify unicode codepoints with exactly 6 hex digits.
Handle UTF-8 multi-byte characters in the lexer.
Fix no-break space handling.
Add test cases for the escape sequences.
Merge branch 'master' into text-escape-sequences

Conflicts:
	tests/CMakeLists.txt