Right now we have two different step implementations, one for k8s and one for Garden. We need a way for the ATC to know which one should be used.
There are also currently a bunch of worker-specific things such as the pool and strategy that are being passed into each step that doesn't need to come from the top down. We can move these things behind the runtime client interface and have a separate implementation for garden and k8s.