add SIGTTIN and SIGTTOU handlers

- SIGTTIN forks an additional worker
- SIGTTOU disconnects the least-recently forked worker