syntax: allows trailing " and { in triple quoted strings

Previously, the 3 first " where the start
and what followed the content until 3 other "

therefore `""""x"""` is the 2 char string `"x`;
but `"""x""""` was illegal (a single x followed by a un-terminated string)

This commit make long string end at a sequence of 3 or more " but considers
only the last 3 to be the end token.

Now, `"""x""""` is legal and is the 2 character string `x"`

Last example:

~~~
print """"""""" # output 3 characters: """
~~~

Signed-off-by: Jean Privat <jean@pryen.org>
syntax: enable empty expression-expansion in super-strings

Allows `"a{}b"` to be `"ab"`, ie with an empty expansion in the body.

The point of this commit is to allow line-breaks or comments in strings

~~~
print "this {
      }is a { # some comment
      }string"
~~~
outputs "this is a string"

Signed-off-by: Jean Privat <jean@pryen.org>
parser: regenerate for strings
tests: add string-related tests

Signed-off-by: Jean Privat <jean@pryen.org>
vim: update syntax for strings

Signed-off-by: Jean Privat <jean@pryen.org>