Fix SwitchToBuddy from function definitions

The problem is that `SwitchToBuddy::switchDefinitionDeclaration()` just traverses `DUChainContext::Other` contexts while looking for a parent context owned by a definition. kdev-clang creates a `DUChainContext::Function` context for the definition (as I would expect), and the function fails to find a context.

Fix that by also considering `DUChainContext::Function` contexts. Maybe we can also drop the context type check, not sure why it is there.

REVIEW: 120174
Don't open welcome page on plugin load

Right now that's just highly annoying. We have to find a better way to
show that one.
Switch to QApplication in reviewboard test

* KAboutData instead of K4AboutData
* QCommandLineParser instead of KCmdLineArgs

REVIEW: 119938
Don't use the session to check enabled state unless necessary

This behaves as a nearly pointless optimization. It's actually done
because we have at least one test that deletes the session, leading
to issues with CompilerManager which rightfully asserts that it's
loaded even after the session has expired.
It's not necessary to check the session for it, so we don't.