Nette\DI\Compiler: fixed multiple inheritance service definition

When inheriting factories in my config.neon I'm having tough times when I'm inheriting multiple times (i.e. more then 1 level down).

Sometimes it says that the service does not exists. I think it's because of the sorting (IMHO sort just by inheritance flag is not enough).

So I've created a simple depth collector which is then used as a sorting pattern. That makes the parent services be the first processed and available for the child services later on.

Related forum topics (cze):
- http://forum.nette.org/cs/12969-poradi-definovanych-sluzeb
- http://forum.nette.org/cs/12232-opetovne-dedeni-jiz-zdedene-sluzby