T1002123 spell checker

I thought this would be a five minute fix but it turned out to be more difficult. At least I could remove my first AspectJ code.
I don't see the same doc as Iulian, but I agree that we should avoid to use internal classes. `SpellingEngine` doesn't provide much over `ISpellingEngine`, so we should use the interface.