Add timeout to VCS checkout and update

This is part of a bigger plan to integrate this timeout in `wstool`, and comes from a problem that would cause a call to `wstool update` to hang for a very long time. While not providing any remedy to the cause, this should at least provide a convenient workaround.

* the `timeout` argument is added to the interface of `update` and `checkout` in `VcsClientBase`
* the `run_shell_command` helper has been augmented with a `timeout` functionality
* it is implemented in the git client, which was the one to cause the error in `wstool`

The implementation of this on the other VCS's is not provided by this PR.