For a project I'm working on, I need 3 things...
A list of all possible namespaces that define Lightning Components. This would look something like ['ui','force','c','managednamespace'].
Given a particular namespace, return a list of available component descriptors for that namespace like ['ui:button','ui:inputText','ui:inputDate'].
Given a particular component descriptor, be able to get the full component definition for that Component. Such that if I called $A.componentService.getDef('namespace:mycomponent'), it would be available.