comma-separated labels

adds support for labels which include commas (cf. #176)

this was problematic before because commas as used as separators within form fields - now such labels must be enclosed in double quotes, CSV-style

note that the new `*_inline_values` functions replace the use of `Splitter`/`Joiner` throughout, in an effort to improve encapsulation - however, that means they're used not only for labels, but also for origins

thus careful review and manual testing are required