add watcher for expiration, add expiration for TestAndSet

also add some test cases