Always re-init to the target manifest branch.

To allow switching branches, always re-init to the target manifest.
The latest versions of repo have full branch switching support.

This allows us to have different branch configurations share the same
checkout on builders.

For production jobs (--debug unset), When there is cleanup failure in a
project, delete the .repo/projects/<path> store in addition to the
working directory, since a failure may mean the .repo/projects store
is corrupted.  Saw this when switching between R20 and master when
external/skia/third_party/glu was removed from 'master' manifest.

This change needs to be integrated into each branch.

BUG=chromium-os:21458
TEST=*Ran local trybot switching between branches.
     *Ran remote trybot switching between R19, R20, and master branches.
     *Ran alex-paladin with --buildbot --debug.
     *Tested alex-release, zgb-release, and lumpy-release with
      manifest-versions-test repo using remote trybots.
     *Tested that a (manually) corrupted chromite.git was deleted during
      CleanStage.

Change-Id: Ib4620596d2a0f2fe4e98d461a47dec953c54773e
Reviewed-on: https://gerrit.chromium.org/gerrit/23175
Tested-by: Ryan Cui <rcui@chromium.org>
Reviewed-by: Brian Harring <ferringb@chromium.org>
Commit-Ready: Ryan Cui <rcui@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/23739
Reviewed-by: David James <davidjames@chromium.org>
4 files changed