Syntax for `needs` context doesn't make sense

I feel like steps.version_ref.outputs.value and needs.build.outputs.value sound vastly different. The syntax in the needs context should be:

needs.build.steps.version_ref.outputs.value

That also prevents conflicts between different steps.

Re: compatibility, this change doesn’t really need to break anything, the old logic could be kept working easily.