config: refactor file management

The existing config management started out with just one file, but
has grown to load & merge from multiple sources.  Refactor classes
to better reflect this: one class to represent a single file, and
another to represent the union of them all.

By itself, this isn't interesting.  But it lays the groundwork to
be able to load config files from subdirs instead of only one file
per project.

Bug: 160223496
Test: Unittests pass
Change-Id: I522b18fa8bc31f787c92cf95db7da4168007915e
diff --git a/pre-upload.py b/pre-upload.py
index 57f699b..ffefd09 100755
--- a/pre-upload.py
+++ b/pre-upload.py
@@ -212,7 +212,7 @@
         # Load the config for this git repo.
         '.',
     )
-    return rh.config.PreUploadConfig(paths=paths, global_paths=global_paths)
+    return rh.config.PreUploadSettings(paths=paths, global_paths=global_paths)
 
 
 def _attempt_fixes(fixup_func_list, commit_list):