Add `sep-by-1`.

Previously `sep-by` required at least one successful parse; this made
parsing the empty list/empty object in JSON impossible (or, at least,
inelegant). This also contains some changes to test that empty JSON
collections work, and for more consistent naming.