sync: Support upgrading manifest formats

If the manifest format changes during init or sync we need to do
a full reparse of the manifest, and possibly allow the new object
to reconfigure the local workspace to match its expectations.

Signed-off-by: Shawn O. Pearce <sop@google.com>
diff --git a/manifest.py b/manifest.py
index a2fc960..f737e86 100644
--- a/manifest.py
+++ b/manifest.py
@@ -15,6 +15,7 @@
 
 import os
 
+from error import ManifestParseError
 from editor import Editor
 from git_config import GitConfig
 from project import MetaProject
@@ -45,3 +46,6 @@
 
   def SetMRefs(self, project):
     pass
+
+  def Upgrade_Local(self, old):
+    raise ManifestParseError, 'unsupported upgrade path'