CURATOR-33 recursive TreeCache recipe

Excellent info, that makes complete sense.  I tested this out two ways:

1) Call 'root.wasCreated()' twice sequentiall during start().
2) Same thing but put the first call on a new Thread to run concurrently.

All the tests passed, so I think the simple approach works here.  I believe it works because I'm using the compare-and-set style approach consistently throughout -- for example if two threads are trying to concurrently add a new node "/test/foo" to an existing node "/test", only one thread can win; so duplicate events inherently don't propagate down the tree.