Treat missing attributes as None when parsing the manifest

Some of our code assumes that a property is None.

Signed-off-by: Shawn O. Pearce <sop@google.com>
diff --git a/manifest.py b/manifest.py
index 2ac1453..9137371 100644
--- a/manifest.py
+++ b/manifest.py
@@ -241,6 +241,8 @@
     d = _Default()
     d.remote = self._get_remote(node)
     d.revision = node.getAttribute('revision')
+    if d.revision == '':
+      d.revision = None
     return d
 
   def _ParseProject(self, node):