The file loading logic implemented in the runtime package is generally useful within OPA. These changes factor the file loading into a separate package that can be reused without taking a dependency on the runtime.