Please have a comment on what this Mutex protects. From reading the code: "This mutex protects everything except the watcher member. It is needed so that clone() can atomically replicate the Store and do the log snapshot in a go routine."