Use full name for enum default values

In the case where there were multiple interfaces specified in the
settings YAML that had the same last segment, the code generator would
create unbuildable code when those classes both specified default values
for properties that were enums.  This happened because there was a
'using namespace ...' line for every class at global scope, so when
the default value for the enum was specified, the compiler wouldn't know
which class to use.

For example, if there were two interfaces that used a class called Mode
that each tried to set default values like:
 * Mode::bootMode::Safe
 * Mode::powerMode::Static
then the generated code wouldn't compile.

Fix this by removing the global using namespace lines and add the full
prefix to the enum default values when they are set in the initSetting
lambdas.

Note that the code still won't compile when classes of the same name are
used on the same object path.  This is because of the 'using IfaceX'
lines in the scope of each Impl class.  Fixing that is outside of the
scope of this commit, which was done to fix a real world use.

Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I25ac36a58febe4449a29af845e5faba12bb0e63f
2 files changed