Make Runner Controller Tokens routable

Problem statement

In Runner controller management API (Part 2) Runne... (#578797 - closed) we introduced Runner Controller Tokens, but didn't make them cell-aware. That's an issue as Thong highlighted in !212730 (comment 2946300263).

As the runner controller feature involves an externally accessible URL - we must encode information inside the token to allow HTTP router to route the request to the right cell.

Action items

We should make the Runner Controller tokens routable with a similar payload as the runner themselves, see https://gitlab.com/gitlab-org/gitlab/-/blob/runner-controller-enabled-field/app/models/ci/runner.rb#L23.

We at least need cell-local (c:) (which is the default), but probably also good to have them for organization, group and project.

We will also need to update HTTP router rules to know about this new token prefix.

Edited by Thong Kuah