Fixed the allocation of internal abstract implementations, and fixed their constructors to take a pointer to the abstract type.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Updated the test code for abstract impls woth more pure functions. However, the test now fails so it is ignored for the time being.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Moved the getting of the access of a class as a string to a separate function.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Replaced a hard-coded variable name.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Moved the generation of a virtual table call to a separate function, for independence on back-ends.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Separated the logic for abstracts impls into small functions.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Renamed AbstractImplementationsPass to GeenrateAbstractImplementationsPass.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Added an off by default option for generating abstract implementations because the MS ABI branch does not always work.

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