Manager timeout handling cleanup + RedisQueue array -> tuple

* Use OTP 'timeout' return values instead of explicitly setting timers
* Vary timeout depending on whether jobs were dequeued or not
* Use tuple instead of array on RedisQueue multiple return value