[opwig] Implemented ID in MetadataObject (=name) and overwrite in Function (=signature);
Updated Container, Scope and Class to use ID as the metadata identification value;
Scope AddNestedClass and AddNestedNamespace no longer require the object's name as argument;
Updated grammar rules and utilities for AddNestedClass/AddNestedNamespace modification;
[opwig] Updated unit tests to get function by id (signature);
Fixed function signature generation code;
Updated Container to have a HasName method, and Scope to have a HasName and HasObject;
Updated Scope to use HasObject as the 'check existence' method in the AddNestedOBJECT methods;
[opwig] Added a couple function overload unit tests;
Fixed a problem in Scope::AddNestedFunction - errouneous detection if function already existed;
Merge branch 'functionoverloads' into dev