ordinalScale.extentModifier added

`Domainer` turns extents into domain on `Scale.Quantitive`. It would be helpful to have something similar on `Scale.Ordinal`.

While the most general form of this would be some sort of `OrdinalDomainer`, it would end up sharing almost no code with `Domainer` other than being logically similar. Therefore, it's implemented as a function of the type `(string[]) => string[]`.

Close #623.