Fixes Issue 4479 - Better error message when a module with a name different from its file name is imported via its file name.
Fixes Issue 9451 - Better diagnostic on unimplemented abstract methods.
Fixup Pull2452 to match interface and abstract function diagnostics.
Merge pull request #1389 from AndrejMitrovic/Fix4479

Issue 4479 - Better error message with module conflicts
Merge pull request #1620 from AndrejMitrovic/Fix9451

Issue 9451 - Better diagnostic on unimplemented abstract methods.