CURATOR-33 recursive TreeCache recipe

Ok.  What do you think if I rename these to CacheEvent / CacheListener for now, and then after this lands, go back separately and add the new listener APIs to NodeCache and PathChildrenCache?  Or does it need to be 100% done in one shot?