refactor of action descriptor pipeline

Adding extensibility for how `ReflectedActionDescriptor` is created.

This replaces the various `*DescriptorFactory` interfaces.
Well then, what determines if something is configuration-ey versus service-ey? Is it just the ability to reorder them? Or that we expect some things to not participate in scoping?