Cache VMs for a short time in LB.listEndpoints()

The VM list call can be very slow in some regions and it is called
by listEndpoints(). Since endpoints are often retrieved for many LBs
in sequence, this caching can dramatically improve performance. The
tradeoff is that new servers added to an LB may not appear in the
listEndpoints() results for up to a minute longer than usual.