ENH: #10143 Function to walk the group hierarchy of a PyTables HDF5 file
closes #10143 

This implementation is inspired by os.walk and follows the interface as much as possible.

any reason not to call this just walk?
 pls add a note in whatsnew/0.17.0 in enhancements
 I've renamed walk() and included Series objects.  However, I think you have a different API in mind.  I am deliberately not yielding each Pandas object individually but yielding each PyTables group name, along with a tuple of its contents.  This follows the os.walk API.  I.e. each yield is 

  `(group_path, [subgroup_name, ...], [subobj_name, ...])`

I think there are several advantages:
1. The consumer can see the difference between groups and Pandas objects
2. Future extension could allow pruning of the search space by mutating the yielded lists, as is possible with os.walk.

Note also:
- Some testing of node type is necessary during walk because a Pandas object is also a group to PyTables.
- All non-pandas leaves are ignored.  walk() will only yield groups and Pandas objects.

Please let me know what you think before I write something in whatsnew/0.17.0
 ok, looks reasonable. Pls add a whatsnew (and add this to the docs in io.rst), separate-sub-section in the HDF5 section. 
 closing, pls reopen if you can fix according to comments
