Make Watcher work for directories too

Big caveat that this doesn't work for directories containing directories (well, the watching part will work, but the initial GetAll will explode), this isn't important at the moment since we don't have a structure more than 1 dir deep in etcd anyway. 
Exactly why this is a struct now :)