This adds a mechanism for supporting long polling for all runners since 1.0.
When we detect that we do not have last_update in request:
- we will proxy request to GitLab,
- we will record response,
- we will check if response is 204 (no build),
- we will read header with last update,
- we will use token and receive header value to long poll.
This reduces the pressure from old runners running with concurrent=1
by 16x (50s [configured long polling timeout]/3s [default check interval]). We fire one requests once per minute effectively.