Add option to work recursively.

Change how files are matched so instead of having a single list of files, have a
dictionary where the directory is the key and the value is a list of the files
in that directory which match the pattern.