To Do:
 * Registry tests
 * Registry doc
 * General usage documentation
 * Document exceptions

Other ideas (maybe later if needed):
 * Unregistering components
 * Hierarchy of registries
 * Driver-related helpers (e.g. determine type of driver components, register/unregister drivers with main)