This PR merges the different string parsing functions into a single
entry point function.
Previously there were two entry points, one for string or byte literal
and the other for f-strings. The reason for this separation is that our
old parser raised a hard syntax error if an f-string was used as a
pattern literal. But, it's actually a soft syntax error as evident
through the CPython parser which raises it during the runtime.
This function basically implements the following grammar:
```
strings: (string|fstring)+
```
And it delegates it to the list parsing for better error recovery.
- [x] All tests pass
- [x] No performance regression