clean up first_found to fix a few issues:

 - add a skip option so it won't raise an exception if you don't match anything
 - make it work as a drop-in replacement for first_available_file
 - document in the module comments all of the above cases
Merge pull request #2716 from skvidal/first_found_skip_fix

clean up first_found to fix a few issues: