Improve compiler message when duplicated modules are detected

As per #2131.

Now when you `mix compile` a project with the following files,

foo.ex

    defmodule Foo do
        def foo do
            42
        end
    
    end

bar.ex

    defmodule Foo do
      def foo do
        42
      end
    end

You now get:

    == Compilation error on file lib/foo.ex ==
    ** (CompileError) lib/foo.ex:1: cannot define module Foo because it is currently being defined in lib/bar.ex:1