Refactor part-parsing.  All but 2 tests passing.

This refactors a lot of things, but was tricky to do atomically.

The first part is moving the comma-delimited parsing to a separate
function, along with several other things that were being done
inline unnecessarily.

The next is to avoid a bunch of excessive parsing of range parts,
and the prefix which comes before any matched open-{.
2 more dollar tests

Accidentally made these fail while trying out a strategy to make
escaping more effective.
Escape braces and commas more thoroughly
Escape periods as well as other chars
Allow escaping of slashes, before other things
Handle {a},b} as {a\},b} -> a} b

Now passing all tests.