Simplify missing_files method

By moving the missing_files method to SystemDescription calling it
and its implementation become simpler
Extract methods to get missing files
Extract method to format missing file errors
Eliminate intermediate map of missing files
Don't return unused value
Deduplicate scope validation code

This requires introduction of a "missing_files_for_scope" method,
which switches a method based on the scope. This clearly should
rather be solved by polymorphism in the scope classes, but this is
a step for later.
Merge branch 'refactor_file_validation'

Pull request #201