[PyROOT][6345] Fix for protected methods in cross inheritance
[PyROOT][6345] Fix for protected methods in cross inheritance

This commit changes the way base-class protected methods are handled in the
Dispatcher class in cross inheritance. Instead of exposing them with a "using"
declaration in the Dispatcher class, they are redeclared and the call is forwarded
to the base class. This prevents the issues described in 6345, when:
- There is more than one protected overload of a method
- There is a protected and a private overload of a method

Adapted from cppyy's:
https://bitbucket.org/wlav/cpycppyy/commits/1f158f4ad7cbe9951f43d24a217e60c009dd046c

for the case of just one base class.

olifre/root,olifre/root,olifre/root,root-mirror/root,root-mirror/root,root-mirror/root,root-mirror/root,root-mirror/root,olifre/root,olifre/root,root-mirror/root,root-mirror/root,olifre/root,olifre/root,root-mirror/root,olifre/root,root-mirror/root,root-mirror/root,olifre/root,olifre/root,olifre/root,root-mirror/root