Feature/improve find and scan code

Part of fixing #856 and #858. I'm stilling missing the follow config option, but rest should be more or less done, or at least ready for review.
Oh well :-) So does having such ``FindError`` instead of ``OSError`` make sense? As using ``Exception`` here is horribly stupid and was just meant as a placeholder.