improve diagnostic on read_changes badmatch

I saw some badmatch in this function yesterday. In order to understand
it next time I need more diagnostics.

Change-Id: I439296e2a38384eca38c82e5c0f7a499a9af4cf8
Reviewed-on: http://review.couchbase.org/35000
Tested-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Reviewed-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
update "current_through_seq" on possible upr rollback

XDCR-over-upr receives failover_id message that contains real
start-seq that's used for upr stream that's consumed. Due to upr
rollback it can be much smaller than we expect. So it's important to
update our idea of how far we've replicated. Particularly so that xdcr
checkpointing doesn't create invalid checkpoints.

Change-Id: I9b7a1f3faab8d48929f0f64115d5abac81522f08
Reviewed-on: http://review.couchbase.org/35023
Tested-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Reviewed-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
Assert that checkpoint seqno is not smaller snapshot seqno

Just in case. Because due to other bug I actually had checkpoints with
broken seqno.

Change-Id: I9f2fe08e7c92c817d821309cc3e22d2393e15c97
Reviewed-on: http://review.couchbase.org/35024
Reviewed-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
Tested-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>