Create a PipelineTask whose runQuantum method includes all of the logic in ApPipeTask.runAssociation.
This should probably be done after
DM-21877, so it can use the same approach to signal completion of APDB writes to downstream PipelineTasks.
It's not clear what to do about ownership of ApPipeTask.ppdb. It must belong to the new task in Gen 3, but doing so will break config overrides in Gen 2 (and the DB location is always overridden).