Cleans up CtorAndArgsProvider variants

 - Removes AbstractCtorAndArgsProvider.

 - Eliminates recycle logic (providers should capture (or be given) and reuse a CtorAndArgs instance instead).

 - Changes signature on CopyCtorAndArgsProvider to accept CtorAndArgs instance to use (a passed capture).

 - Fixes various tests and examples to adjust to new provider api changes