WIP: Refactor docker-machine calls
This reduces number of API calls using docker-machine, since some of the data are cached.
- Use
Exist
instead ofCanConnect
when acquiring machine - Cache
DockerCredentials
to not call it every time, just check the machine state withCanConnect
(consumes one request per build) - Refactor
Use
to unconditionally allocate machine if we can't connect to existing one
@tmaczukin what do you think?