Refactor `needs` CI config keyword to return data in canonical form

We should extend the syntax to support:

needs:
  pipeline: other/project

needs:
  - another-job-in-this-pipeline
  - pipeline: other/project

We need to refactor the Needs config entry to return data in canonical form and have a mechanism to return a list of in-pipeline needs: and bridge:needs.

Edited by Matija Čupić