try to ensure steps between logging active state in debug mode are exactly 1s, by accounting for accumulated processing time from previous iteration
rename age to wait
rename duration to service
skips rack-timeout entirely when timeout is set to 0; fixes #29
Wow, such refactor, much comment!

Some bugs squashed, hopefully none introduced. The intent of code should be much clearer, even more so with all the amazing commentary.

Hopefully addresses the issues raised in #48 and #45, plus #50 as a bonus. Not to mention #29 again.

@chadbailey59 will probably hate me.