HLSL: Add namespace grammar and some basic semantics.

Unknown how extensive the semantics need to be yet. Need real
feedback from workloads. This is just done as part of unifying it
with the class/struct namespaces and grammar productions.
diff --git a/Test/hlsl.namespace.frag b/Test/hlsl.namespace.frag
new file mode 100755
index 0000000..76c3062
--- /dev/null
+++ b/Test/hlsl.namespace.frag
@@ -0,0 +1,23 @@
+static float4 v1;

+static float4 v2;

+

+namespace N1 {

+    float4 getVec() { return v1; }

+}

+

+namespace N2 {

+    static float gf;

+    float4 getVec() { return v2; }

+    namespace N3 {

+        float4 getVec() { return v2; }

+        

+        class C1 {

+            float4 getVec() { return v2; }

+        };

+    }

+}

+

+float4 main() : SV_Target0

+{

+    return N1::getVec() + N2::getVec() + N2::N3::getVec() + N2::N3::C1::getVec() * N2::gf;

+}