WIP: X509 integration

What does this MR do?

Adds the ability to configure and use x509 certificate and key pairs for TLS for connecting to gitlab servers which require authentication

Why was this MR needed?

When making requests with gitlab-ci-multi-runner to gitlab servers which require certificate authentication it is presently impossible to do so. This allows for runner to utilize a certificate/key pair to make the connection.

Are there points in the code the reviewer needs to double check?

I am not 100% clear on how this project handles documentation. I would ask the reviewer to take look and suggest how they would prefer documentation to be included. (ie which files to add too or if new files should be made etc...)

Does this MR meet the acceptance criteria?

  • Documentation created/updated
  • Tests
    • Added for this feature/bug
    • All builds are passing
  • Branch has no merge conflicts with master (if you do - rebase it please)

What are the relevant issue numbers? none

additional notes

Some tests seem to not work despite seemingly being unrelated to my code. Specifically there are tests for the virtual box executor which pass the initial acceptance criteria but then fail because of a Minute time out fail switching from minute to hour gets these tests to pass but I am not sure why they are failing in the first place.

the docker executor test seems to time out. This started to happen after a rebase to 1-6 stable removed a dependency