Use new process termination for shell executor

Switch to the `helpers/process` package for the shell executor to
start/terminate/kill processes when
`FF_SHELL_EXECUTOR_USE_LEGACY_PROCESS_KILL` is set to false (default
value).

Before:
start process -> send SIGKILL/taskkill to process

Now:
start process -> send SIGTERM -> wait -> send SIGKILL -> wait -> ignore.

If something is not working as expected the user can always switch back
to the old process by setting the env var
`FF_SHELL_EXECUTOR_USE_LEGACY_PROCESS_KILL` to `true`.
50 jobs for !1770 with shell-executor-use-process-pkg in 41 minutes and 33 seconds (queued for 3 seconds)
detached
Status Job ID Name Coverage
  Prebuild
passed #432753282
clone test repo

00:01:07

passed #432753281
docker
helper images

00:08:13

passed #432753283
gitlab-org
tests definitions

00:04:31

 
  Test
passed #432753289
check feature flags docs

00:01:30

passed #432753292
check mocks

00:04:14

passed #432753291
check modules

00:01:30

passed #432753293
code_quality

00:01:57

passed #432753288
docs lint

00:01:05

passed #432753316
git 1.7.1

00:02:14

passed #432753284
license_management

00:05:54

passed #432753294
docker
unit test 1/8

00:04:04

passed #432753295
docker
unit test 2/8

00:03:46

passed #432753296
docker
unit test 3/8

00:13:10

passed #432753297
docker
unit test 4/8

00:04:39

passed #432753298
docker
unit test 5/8

00:03:45

passed #432753299
docker
unit test 6/8

00:03:15

passed #432753300
docker
unit test 7/8

00:03:18

passed #432753301
docker
unit test 8/8

00:02:22

passed #432753302
docker
unit test with race 1/8

00:03:42

failed #432753303
docker allowed to fail
unit test with race 2/8

00:03:25

failed #432753304
docker allowed to fail
unit test with race 3/8

00:13:16

failed #432753305
docker allowed to fail
unit test with race 4/8

00:03:54

passed #432753306
docker
unit test with race 5/8

00:03:33

passed #432753307
docker
unit test with race 6/8

00:03:09

passed #432753308
docker
unit test with race 7/8

00:03:06

passed #432753309
docker
unit test with race 8/8

00:02:59

failed #432753310
shell windows-1803 allowed to fail
windows 1803 tests 1/3

00:12:15

failed #432753311
shell windows-1803 allowed to fail
windows 1803 tests 2/3

00:20:55

passed #432753312
shell windows-1803
windows 1803 tests 3/3

00:06:17

failed #432753313
shell windows-1809 allowed to fail
windows 1809 tests 1/3

00:13:08

failed #432753314
shell windows-1809 allowed to fail
windows 1809 tests 2/3

00:22:03

passed #432753315
shell windows-1809
windows 1809 tests 3/3

00:08:35

 
  Coverage
passed #432753320
check windows 1803 test failures

00:01:05

passed #432753321
check windows 1809 test failures

00:00:54

passed #432753319
race conditions detector

00:01:30

passed #432753317
test coverage report

00:01:34

64.4%
passed #432753318
test junit report

00:01:23

 
  Build
passed #432753322
gitlab-org
binaries darwin/386 darwin/amd64

00:04:10

passed #432753323
gitlab-org
binaries freebsd/386 freebsd/amd64 freebsd/arm

00:05:07

passed #432753324
gitlab-org
binaries linux/386 linux/amd64 linux/arm linux/arm64

00:06:22

passed #432753325
gitlab-org
binaries windows/386 windows/amd64

00:04:16

 
  Package
passed #432753326
gitlab-org
package-deb

00:02:07

passed #432753328
gitlab-org
package-rpm

00:02:04

 
  Release
passed #432753330
release
development S3

00:01:12

passed #432753332
release
development docker images

00:01:47

passed #432753334
shell windows-1803
development servercore1803 helper docker image

00:02:33

passed #432753335
shell windows-1809
development servercore1809 helper docker image

00:02:49

passed #432753336
static QA

00:00:34

 
  Docs
manual #432753338
allowed to fail manual
review-docs-cleanup
manual #432753337
allowed to fail manual
review-docs-deploy
 
Name Stage Failure
failed
windows 1809 tests 2/3 Test
GO version:   go1.13.4
Built: 2019-12-22T11:55:34+0000
OS/Arch: windows/amd64
Uploading artifacts...
Runtime platform
arch=amd64 os=windows pid=9528 revision=ac8e767a version=12.6.0
.testoutput/*: found 26 matching files

WARNING: Failed to load system CertPool: crypto/x509: system root pool is not available on Windows
Uploading artifacts to coordinator... ok
id=432753314 responseStatus=201 Created token=SQhMHdPb
ERROR: Job failed: exit status 1
failed
windows 1803 tests 2/3 Test
GO version:   go1.13.4
Built: 2019-12-22T11:55:34+0000
OS/Arch: windows/amd64
Uploading artifacts...
Runtime platform
arch=amd64 os=windows pid=22580 revision=ac8e767a version=12.6.0
.testoutput/*: found 26 matching files

WARNING: Failed to load system CertPool: crypto/x509: system root pool is not available on Windows
Uploading artifacts to coordinator... ok
id=432753311 responseStatus=201 Created token=5Yp9cJeg
ERROR: Job failed: exit status 1
failed
unit test with race 3/8 Test
PASS
coverage: 24.2% of statements
ok gitlab.com/gitlab-org/gitlab-runner/executors/docker/internal/volumes 1.066s coverage: 24.2% of statements
make: *** [Makefile:115: parallel_test_execute] Error 1
Uploading artifacts...
.cover/*: found 10 matching files
.testoutput/*: found 10 matching files

Uploading artifacts to coordinator... ok
id=432753304 responseStatus=201 Created token=VTv-KDN5
ERROR: Job failed: exit code 1
failed
windows 1809 tests 1/3 Test
GO version:   go1.13.4
Built: 2019-12-22T11:55:34+0000
OS/Arch: windows/amd64
Uploading artifacts...
Runtime platform
arch=amd64 os=windows pid=9588 revision=ac8e767a version=12.6.0
.testoutput/*: found 26 matching files

WARNING: Failed to load system CertPool: crypto/x509: system root pool is not available on Windows
Uploading artifacts to coordinator... ok
id=432753313 responseStatus=201 Created token=HsvCzH_e
ERROR: Job failed: exit status 1
failed
windows 1803 tests 1/3 Test
GO version:   go1.13.4
Built: 2019-12-22T11:55:34+0000
OS/Arch: windows/amd64
Uploading artifacts...
Runtime platform
arch=amd64 os=windows pid=22504 revision=ac8e767a version=12.6.0
.testoutput/*: found 26 matching files

WARNING: Failed to load system CertPool: crypto/x509: system root pool is not available on Windows
Uploading artifacts to coordinator... ok
id=432753310 responseStatus=201 Created token=ckF6iAto
ERROR: Job failed: exit status 1
failed
unit test with race 4/8 Test
PASS
coverage: 40.4% of statements
ok gitlab.com/gitlab-org/gitlab-runner/executors/shell 5.798s coverage: 40.4% of statements
make: *** [Makefile:115: parallel_test_execute] Error 1
Uploading artifacts...
.cover/*: found 10 matching files
.testoutput/*: found 10 matching files

Uploading artifacts to coordinator... ok
id=432753305 responseStatus=201 Created token=6zR1n4y2
ERROR: Job failed: exit code 1
failed
unit test with race 2/8 Test
coverage: 76.7% of statements
FAIL gitlab.com/gitlab-org/gitlab-runner/executors/custom/command 1.550s
FAIL
make: *** [Makefile:115: parallel_test_execute] Error 1
Uploading artifacts...
.cover/*: found 10 matching files
.testoutput/*: found 10 matching files

Uploading artifacts to coordinator... ok
id=432753303 responseStatus=201 Created token=VMtkZcC8
ERROR: Job failed: exit code 1