fix(store): properly hide hidden keys from watchers, not just gets

This branch properly hides hidden key events from watchers for creates, updates, deletes and expirations.  I'm pretty sure the current behavior is a bug, since you could just watch and see the hidden keys that clients wouldn't want you to otherwise see.

There's also the question of whether or not a hidden directory should hide everything beneath it.  In my mind, it should, but I think this is a good start and it could be added after the fact to bring everything to full correctness.