Switch to #[namespace = A::B] syntax.

Thanks to sbrocket for this parsing code.
diff --git a/syntax/namespace.rs b/syntax/namespace.rs
index 49b31d1..b4c6716 100644
--- a/syntax/namespace.rs
+++ b/syntax/namespace.rs
@@ -24,19 +24,23 @@
     pub fn iter(&self) -> Iter<Ident> {
         self.segments.iter()
     }
+
+    pub fn parse_bridge_attr_namespace(input: ParseStream) -> Result<Namespace> {
+        if input.is_empty() {
+            return Ok(Namespace::none());
+        }
+
+        input.parse::<kw::namespace>()?;
+        input.parse::<Token![=]>()?;
+        let ns = input.parse::<Namespace>()?;
+        input.parse::<Option<Token![,]>>()?;
+        Ok(ns)
+    }
 }
 
 impl Parse for Namespace {
     fn parse(input: ParseStream) -> Result<Self> {
-        let mut segments = Vec::new();
-        if !input.is_empty() {
-            input.parse::<kw::namespace>()?;
-            input.parse::<Token![=]>()?;
-            segments = input
-                .call(QualifiedName::parse_quoted_or_unquoted)?
-                .segments;
-            input.parse::<Option<Token![,]>>()?;
-        }
+        let segments = QualifiedName::parse_quoted_or_unquoted(input)?.segments;
         Ok(Namespace { segments })
     }
 }