Defer replication termination on changes error

This is a small optimization to replication: if changes terminates with an error, all changes preceding the error are processed before replication terminates. This has significant benefit where there is high cost to the changes feed.