Removed dependency on underscore, added own utilities, ComponentDefinitionBuilderFactory no longer needs a ComponentRegistry