Progress: update FSS code, including zero-width updates
Update FSS to consider the recent zero-width improvements.
Making the changes reminded me on how I still need to go through and clean the FSS code up.
As noted in previous commits, the changes into supporting UTF really put the code into an unideal and not well tested state.
This needs extensive review and fixes.
To that end, I felt compelled to fix problems and perform cleanups that I observed.
At least to a small extent.
The basic and extended object reads are identical so move the code into a shared private function.
One behavioral change is to better support fail-through practice.
For FSS Extended, the contents are always terminated by a newline.
However, if there is an unterminated quote, then the entire process would previously fail.
This time, do no accept content for that line and continue on to next content.