Fix the handling of EtcdResult children

An EtcdResult object would return itself when it had no children. This
could lead to infinite loops when attempting to parse down into paths.
It would be best to just return an empty list.

There was also a bug where if a EtcdResult object did have children, the
grand children would be returned instead of the direct children. This
has now been fixed.