Added knowledge of namespacing into generation.

This is the first step in making code aware of namespacing. Currently,
the solution to generate symbols which are properly namespaced is to
post-process text after it is being outputed by a Formatter. Ideally
objects will know what namespace they are in and be able to print
themselves out accordingly. This change specifically will allow
generated code to remove namespaces from symbols that don't need
to be qualified entirely without relying on post-processing to remove
the namespace.

Change-Id: Ie535d05a64eb3d6c7d3b5451abdaa289c574170f
diff --git a/FQName.cpp b/FQName.cpp
index 6f6fd09..fcdaf20 100644
--- a/FQName.cpp
+++ b/FQName.cpp
@@ -203,6 +203,13 @@
     return out;
 }
 
+std::string FQName::cppLocalName() const {
+    std::vector<std::string> components;
+    SplitString(mName, '.', &components);
+
+    return JoinStrings(components, "::");
+}
+
 std::string FQName::cppName() const {
     std::string out = cppNamespace();