This commit updates the configuration to be yaml-based and updates the configuration to read in a yaml file.
This commit ensures that the compiler has to check every component against the groups they implement by explicitly annotating the appropriate interfaces.