Extract change coalescing logic from ChangeHandler

This introduces the ChangeRunCoalescer class.

Change-Id: Ib0085abc4c1cbf8ca162a031a96008840690907b