MB-9588 Reuse Flusher Task to avoid corruption

Avoid the memory corruption in flusher code where
re-creating new Task every time a state change occurs can
result in multiple threads mutating the Flusher queues.
Instead re-use the same flusher task efficiently
Change-Id: If9cd3b942e91907715bd1deee64301200e16f24f
Reviewed-on: http://review.couchbase.org/30411
Reviewed-by: Chiyoung Seo <chiyoung@couchbase.com>
Tested-by: Chiyoung Seo <chiyoung@couchbase.com>