vpython: work around flaky failure to remove existing virtual env root.
vpython: work around flaky failure to remove existing virtual env root.

When:
  If prior invocation to vpython crashed or was interrupted,
  virtual env root would exist, but file marking its completion is
  missing.

Then:
  vpython would try to delete existing half-crated virtual env
  directory, but apparently sometimes fails.

Guess:
  If some weird concurrent process doing something to the virutal env
  dir, it can interfere with recursive dir removal of vpython.

Workaround = what this CL does:
  Try to rename the dir first before removal.
  If rename fails, which should not normally happen, defaults to
  removing in place.
  If rename succeeds, then even if the following removal fails,
  vpython can proceed with creating virtual env.

R=iannucci

Bug: 869227
Change-Id: Ia765dc527b97d4b03aba4d39e7ceb660e7da93e5
Reviewed-on: https://chromium-review.googlesource.com/c/infra/luci/luci-go/+/1876638
Commit-Queue: Andrii Shyshkalov <a30c74fa30536fe7ea81ed6dec202e35e149e1fd@google.com>
Commit-Queue: Robbie Iannucci <40f3d43a28ebae3cb819288542e1c84d73d962d5@chromium.org>
Reviewed-by: Robbie Iannucci <40f3d43a28ebae3cb819288542e1c84d73d962d5@chromium.org>

luci/luci-go,luci/luci-go,luci/luci-go,luci/luci-go,luci/luci-go,luci/luci-go