Fix: cycle detection

I found that Ohai::Runner was reporting a cycle in the case where plugin A requires plugins B and C, plugin B requires plugin C, and plugin C has no dependencies. It was possible to have a stack that looked like [bottom] A C B [top], then when B gets popped off and has its dependences added to the stack we'd have [bottom] A C B C [top], which would be counted as a cycle. This was due to all the dependencies being pushed to the stack at once.

Looking for review, @danielsdeleo @lamont-granquist @adamedx. :)