Duplicates goofy in preparation for transition to host-based testing.

This fix bifurcates the goofy directory into goofy_monolithic and
goofy_split. Development of host-based testing will
proceed on goofy_split, while the old version is maintained as
goofy_monolithic.

A symlink is introduced at the old goofy path, and points at
either goofy_split or goofy_monolithic, depending on whether
the test infrastructure is to use host-based testing or not.

At runtime, you can check whether host-based testing is on
by hovering over the Info button in the lower-left, and looking
for the "Host Based" value.

BUG=None
TEST=Manual
Change-Id: Ic748384269d0667fcbb10158bb6f6d373e69ffe2
Reviewed-on: https://chromium-review.googlesource.com/203764
Commit-Queue: Peter Ammon <pca@chromium.org>
Tested-by: Peter Ammon <pca@chromium.org>
Reviewed-by: Vic Yang <victoryang@chromium.org>
diff --git a/py/toolkit/installer.py b/py/toolkit/installer.py
index 01d01e3..166c427 100755
--- a/py/toolkit/installer.py
+++ b/py/toolkit/installer.py
@@ -190,13 +190,15 @@
       # permissions.  This is necessary because when the toolkit was
       # unpacked, the user may not have been root so the permessions
       # may be hosed.  This is skipped for testing.
+      # --force is necessary to allow goofy directory from prior
+      # toolkit installations to be overwritten by the goofy symlink.
       if self._sudo:
         Spawn(['chown', '-R', 'root', src],
               sudo=True, log=True, check_call=True)
         Spawn(['chmod', '-R', 'go+rX', src],
               sudo=True, log=True, check_call=True)
       print '***   %s -> %s' % (src, dest)
-      Spawn(['rsync', '-a', src + '/', dest],
+      Spawn(['rsync', '-a', '--force', src + '/', dest],
             sudo=self._sudo, log=True, check_output=True)
 
     if self._no_enable: