Try a bit harder to find types for look-ahead completion
We now look at the return type of functions we complete, instead of
just adding the functions themselves. This sounds like a valid
approach but in the end isn't sufficient to solve all cases - we
really need to expand the libclang API to get this done properly.
Most notably, since self-assignment isn't allowed anymore, we cannot
find the correct type for the int* p = ... case anymore and just
fail then... For now, we will mark the test as an expected failure.