Enhanced GitLab CI runner to support running builds in Containers and on Virtual Machines

WARNING: This is WIP, please do not merge. These changes are required to support Travis-CI compatibility layer.

- Notify GitLab CI about supported languages, OSes and runner capabilities
- Added support for many concurrent workers
- Enhanced build script generation when using non-travis mode
- Allow to overwrite executor script. It allows to use script which uses Docker Container (run_docker_script) or Parallels Virtual Machine (run_pr_script)
- Track list of workers with received build_data

I use it to build Android and iOS projects using Docker and OSX VMs. For OSX image I will publish image preparation instruction in the future.

Linux images (for Ruby, Python, Android) should work out of box: https://registry.hub.docker.com/u/ayufan/travis-linux-worker/. Docker will download them when first used. These images were built with: https://github.com/ayufan/travis-images/blob/master/build_docker_templates

Example `config.yml` for Parallels support:
```
---
url: http://gitlab-ci/
token: token
execute_script: time /Users/ayufan/Sources/gitlab-ci-runner/run_prl_script
builds_dir: "/Users/ayufan/Sources/gitlab-ci-runner/tmp/builds"
workers: 4
os: osx
allow_only_one: true
```

Example `config.yml` for Docker support:
```
---
url: http://gitlab-ci/
token: token
execute_script: time /Users/ayufan/Sources/gitlab-ci-runner/run_docker_script
builds_dir: "/Users/ayufan/Sources/gitlab-ci-runner/tmp/builds"
workers: 4
os: linux
allow_only_one: false
```

Unused block argument - `build_data`. If it's necessary, use `_` or `_build_data` as an argument name to indicate that it won't be used.