Rework variant artifacts materialization model
Refactor VariantArtifactsPlugin around a live outgoing artifacts context and
split artifact publication into explicit internal services: outgoing variant
registry, assembly binding, materialization policy hooks, primary-slot
convention, and slot assembly handling.
Introduce variant artifact slots as identity-first public API and expose
materialized assembly handles through ArtifactAssemblies. Add replayable
configuration hooks for outgoing configurations, outgoing slots, outgoing
variants, and registered assemblies.
Create consumable outgoing configurations per variant, bind the primary slot to
the root outgoing artifact set, and publish non-primary slots as Gradle outgoing
configuration variants. Add deterministic injective task names for slot assembly
tasks, use Sync for directory assembly, and configure the default assembly output
location under build/variant-assemblies.
Make primary-slot selection finalize-on-read and provide a single-slot
convention that fails when no unique default can be inferred. Mark artifact
internal implementation package as non-public API.