Acquire before asking for build
This introduces a three fixes:
- Acquire runner context before build, instead of locking main queue,
- Give back the runner to main queue, making it faster for the worker threads to pick new builds,
- Execute
docker-machine ls
only once at time if more than one goroutine asks for it.