Improve eggdiscovery coverage

A small refactor to allow more code reuse between discovery and eggdiscovery. It's a pity I couldn't use "yield from", and I had to create a class to implement the early exit behaviour...
I saw this code in _find_tests_in_dir was not covered and was a straight copy/paste from discovery... an ideal candidate for code to be left to rot... 
No offense taken if you think the added complexity is not worth paying for the code reuse!