Issue 5933 & 7159 & 9377 - Invoke function semantic3 correctly where it is required.

- [Issue 5933](http://d.puremagic.com/issues/show_bug.cgi?id=5933) - Cannot retrieve the return type of an auto-return member function
- [Issue 7159](http://d.puremagic.com/issues/show_bug.cgi?id=7159) - Forward reference when casting auto return method
- [Issue 9377](http://d.puremagic.com/issues/show_bug.cgi?id=9377) - Link-failure regression cause by fixing issue 8504

This is a superseded pull of #535.

By this, the test result of [bug 6661](http://d.puremagic.com/issues/show_bug.cgi?id=6661) in `test/compilable/compile1.d` is changed. I think that the old one was a incorrect behavior.

----
Requires a phobos pull: https://github.com/D-Programming-Language/phobos/pull/1096