Issue 13787 - Error without line number when slicing function pointer

https://issues.dlang.org/show_bug.cgi?id=13787

While fixing the diagnostic bug, I found an unlisted issue in both `semantic` functions of `SliceExp` and `IndexExp`. See the first commit.

Then I've improved maintainability of those `semantic` functions by refactoring. See the following three commits.

Finally I fixed issue 13787 by disallowing a slicing and indexing of function pointer.