Do not require script entry for job, require commands instead
### Description
CI job can be defined as follows:
```yaml
rspec:
stage: test
```
This is clearly invalid, but
```yaml
before_script:
- rspec $DIRECTORY
test:unit:
variables:
DIRECTORY: spec/unit/
test:feature
variables:
DIRECTORY: spec/feature
```
looks like a good configuration.
### Proposal
We do have `Ci::Config::Entry::Job#commands` method, that returns all the commands that runner has to execute. I think we should validate presence of commands, instead of requiring presence of script.
What do you think @ayufan @connorshea?
### Links / references
https://gitlab.com/gitlab-org/gitlab-ce/issues/24759
issue