Do not start too many workers

Fixes forkbomb on receiving many SIGHUPs too rapidly
Refactor into several classes

The main class (Prefork) exposes the API as static methods.
The other classes are organized by role.