HalfNullOrEmpty - fixing an issue where Legacy EF5 ObjectContext VB Code Genrator puts generated code into a namespace (workitem: #1858)

SingleFileCodeGenerator is invoked with the default namespace for the code that is supposed to be generated. This namespace would be the empty string for VB (and a non-empty string for C#). We then pass this namespace to the code generator in the System.Data.Entity.Design where the preprocessed T4 templates write the `Namespace` directive. However the T4 templates use model namespace if the passed namespace is null. When plugging in the legacy code generation to the EF6 Designer we changed the `defaultNamespace != null` to `!string.IsNullOrEmpty(defaultNamespace)` which resulted in not passing the empty namespace for VB and writing the model namespace as the namespace for generated code. The fix is to check the defaultNamespace only against null and not against the empty string.
1807AndFriends -
Fixing workitems:

- #1807 Designer: When launching the wizard using DTE for automation, it snaps .vstemplate extension to the file
- #1473 Remove catching ObjectDisposedException in ModelObjectItemWizard
- #1949 Error 6005 message string arguments are reversed