use createTranslationUnitFromSourceFile instead of parseTranslationUnit

I'm not sure to understand all the reasoning behind this but apparently
to trigger a "correct" reparse (/codeCompleteAt), it is necessary to
create the translation unit with createTranslationunitfromsourcefile.
See clang_reparseTranslationUnit doc:

>  * \param TU The translation unit whose contents will be re-parsed. The
>  * translation unit must originally have been built with
>  * \c clang_createTranslationUnitFromSourceFile().

This change fixes the remark 3 in this issue:
https://github.com/Sarcasm/company-irony/issues/1

Before that, when a new type was introduced, for example a new 'struct'
declaration, it didn't show up in the completion results, the code
wasn't reparsed apparently. With this change, the completions appears to
be richer (i.e: completes copy constructors when a local variable can be
used in the copy, ...).

struct foo {};

void f1() {
     foo| -> foo
}

void f2() {
     foo a;

     foo| -> foo, foo(), foo(const foo&),
}