Changed the declaration default access specifier to be public.

This fixes some problems with CheckIgnoredDeclsPass that ignores declarations that are not public, which .
Fixed generation of nested declarations in classes.
Fixed generation of unions.
Added a pass to generate interfaces with the purpose of simulating multiple inheritance.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Completed the support for multiple inheritance with the exception of base interfaces and the cast operator in the derived class to the second or later base.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Added explicit implementation of interface properties (when necessary).

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Fixed a bug in the getting of the root base method: the bases after the first one were ignored.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Completed the parallel hierarchy of interfaces so that a derived class can access the members of all of its bases.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Replaced the vague checks for explicit interface impls with a specific property.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Fixed the check for duplicates to account for explicit impls. Fixed the getting of a root base method and property to consider the parameter for all bases.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Removed the generation of protected members of interfaces.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Added a fake option for multiple inheritance so that the build stays healthy.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Fixed some "enum class" (?!) because it broke the build (at least on my machine).

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>