Finding a file within a list of paths

This patch adds functions that searches a list of paths for a file.  The
file to search for is specified by path that's relative to each of the
paths in the list.  Once function returns a `cork_file` instance for the
first file that exists, the other returns a file list containing all of
the files that exist.