Allow specifying timeout per job in .gitlab-ci.yml

It would be very nice to be able to override the project default timeout specified in project settings in the projects ci config file.

Example use case, pushing docker image to remote repo. As part of my deploy process a docker image is pushed to a remote registry over a slow connection. As such, if the docker image is large, the job can take over an hour to complete. However, I don't want to set the project default timeout to something like 5 hours because all of the other jobs defined in the .gitlab-ci.yml config file complete much quicker and letting them stall for 5 hours would be too long.

Note: It should not be possible to specify a timeout longer than an instance-wide or runner-configured maximum timeout, otherwise it becomes an abuse vector for GitLab.com. A runner-configured max timeout is probably sufficient. I'm not sure what instance and runner timeouts already exist, but we might need a default and a maximum timeout.