[2/2] Use proplist instead of #change record
Refactor payload to simplify coordinator

Two things we're doing here:

1) We're unwrapping {doc, {error, Reason}} on the RPC side.
2) We're already suppressing the doc field on the RPC side so we don't
have to duplicate the work on the coordinator.
Report number of pending changes in shard

Also refactor the _changes accumulator into a record.

BugzID: 24236
Collect pending counts and report sum at end

BugzID: 24236
Be defensive when calcualting pending_count

Its theoretically possible that during the upgrade we end up with a
mixed set of RPC workers. This makes sure that we don't crash the
coordinator with a badarith error.

BugzId: 24236