Multi config merging
This MR extends the existing config merging utility of ConfigText, allowing it to now accept a list of file paths, rather than just a single file. When it recieves a list, it iterates it in order, merging subsequent files into the initial one. The current behaviour of the dict merging is such that it doesn't override. This means current config has the main priority, and then the first config in the list gets next priority, and so on.
cc @dguest who I'm sure will CC many others, as I imagine this functionality is used by several downstream frameworks.