Ensure that timeout will happen for jobs that don't target any alive minions

Instead of checking if all returns are in, we should check that the job is not running anywhere then enforce the per-minion timeout. I've added a test case for the instance where there is a job fired to a minion that will never return (before it would stall forever)
Merge pull request #16276 from jacksontj/2014.7

Ensure that timeout will happen for jobs that don't target any alive minions