Revert "Revert "Add the fork manager code (related to previous patch).""

This reverts commit c53538dc77b46b50d50d4307d3d41616bd45a341.
Revert "Revert "This patch makes Ansible reuse fork allocation between seperate instantations of the runner API, therefore the overhead of recreating forks""

This reverts commit 6685b4989e0763793e7b87170027af40f634ce46.
While the previous work on the foon class can't be quite recycled, it's still a nice abstraction.