Fix RestartTs in Recovery

- Store the last Flushed Ts before restarting a stream and use that
as HWT when the stream gets restarted. This makes sure that if the stream
is restarted in short span of time(before all vbs have seen a new snapshot marker),
a valid TS is used to in projector request
- Generate a new TS only when all StreamBegin have been received. This makes
sure that we don't start processing mutations till all projectors have processed
the stream request successfully.
- RollbackTs in TopicResponse from projector may not necessarily be nil. Need
to call IsEmpty() to check if its really empty.

Change-Id: Id41c8aba17889f05bb52e8b7f3118216f44125da
Reviewed-on: http://review.couchbase.org/42621
Reviewed-by: John Liang <johliang00@gmail.com>
Reviewed-by: Deepkaran Salooja <deepkaran.couchbase@gmail.com>
Tested-by: Deepkaran Salooja <deepkaran.couchbase@gmail.com>