Due to quite a bit of refactoring, the diff on the supervisor module is rather big. There should be no functional changes, except the speed of starting many children under a non-simple_one_for_one supervisor. The goals of the change are
* speed up starting of many children (as in the original PR#1467)
* improve readability
* improve maintainability and prepare for further changes
We have done internal reviews, and tests have quite good coverage, so we are getting close to merge (on master). Still - if anyone out there has got the time and interest, some further reviews and/or tests in existing systems would be much appreciated.