BuildRequest changes

Throughout Devhub we use `Integers` to store the build timeout value, which can also be `null`. In the build server, we used `ints` which cause `NullPointerExceptions` for some input. These changes allow builds that do not specify a build timeout.

Another change in this PR is that the requester doesn't necessarily have to specify the branch name. For example when requesting a commit to be build, finding out to which branch it belongs can be difficult (we would have to add a command for the git server). Since we're already pulling all the branches, we can just checkout a commit to the `head` in the working directory when the branch name is unknown.