Allow swap when source language is set to autodetect

When source language is set to autodetect and there is a detected
language, allow swap and do it with detected language.
Fix `const Language` -> `const Language &` in canSwapLanguages()
Google,MST: Don't allow to swap same languages

E.g., English with English.