Enhance tree navigation

This includes following enhancements of the TreeNavigator implementation:
* all read only operations now declared in ```ITreeDataSource```
  (true logical difference to ```ITreeStoreBackend```)
* new ```TreeViewNavigator``` (now subclassed by ```TreeNavigator```)
  for navigation on read only ```ITreeDataSource``` implementations
* new ```int ITreeDataSource.GetParentChildIndex(TreePosition pos)``` which can be used to
  retrieve the index inside the node list of a parent
* new ```int TreeNavigator.CurrentIndex``` holding the index of the current
  position inside its parent node (or root) list