gitlab-runner: Add suspend/resume foundation and Instance executor support
Add the suspend/resume foundation to the runner and implement it for the Instance (autoscaler) executor: - `SuspendableExecutor` interface with `Suspend(ctx) (url.Values, error)` and `Resume(ctx, fields url.Values) error`. - `Build.suspendEnvironment()` orchestration: compose the environment key from runner ID, system ID, and executor-specific fields. - Autoscaler `prepareResume` flow: parse the environment key, call `scaler.Resume`, then inner `Prepare` and `Resume`. - `EnvironmentKey` type with `String()` / `ParseEnvironmentKey()` for the wire format. - Skip git source fetching on resume (`BuildStageGetSources` is a no-op when `EnvironmentKey` is set). - Feature-flagged behind `FF_SUSPENDABLE_ENVIRONMENTS`.
issue