Generated internal implementations of abstract classes to use when a method with an abstract return type returns a value.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Moved the generation of internal implementation of abstract classes to a separate pass.

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