Implement IArgumentStore separately.

This is no longer a responsibility of the `DynamicBuilderBase<T>` class,
but is in a separate class where the responsibility can be better managed.
Merge branch 'single-argument-store'
Move `Build()` into base class.

This is a shared responsiblity really, so it can go on the base class.
R#: Move method down.
R#: Move method up.
R#: Move method down.
Merge branch 'share-build-implementation'