Issue 4485: Refactor \partcombine and \autochange iterators
Move the \partcombine context state machine from C++ to Scheme and
move the part-specific work into a new Part_combine_part_iterator.
What remains in Part_combine_iterator is multi-measure rest handling.
The part-specific work is now nothing more than changing context at
specified times, which is basically what \autochange does. There are
still some differences, but most of the implementation of both is now
in the common base Change_sequence_iterator.