Limits execution time

This PR fixes issue #362.

The **default execution time limit is 5 minutes**, but you can configure this value in your `competition.yaml` on a per-phase basis:
```yaml
phases:
  0:
    ...
    execution_time_limit: 60 # 1 minute limit
    ...

  1:
    ...
    execution_time_limit: 600 # 10 minute limit, this phase has more data to compute
    ...
```

Tasks
- [x] Configurable
- [x] Default **5 min**
- [x] Gives useful output about execution taking too long
- [x] Someone needs to review and test this, make sure I didn't make any mistakes!