String wrapper to convert between QString and lg2

Introducing `Git::Internal::String` wrapper class to simplify conversion from and to QString.

* Should it be exported to the public interface? If so, the GitWrap API should change to take this class instead of a QString.
Returning a non-const pointer to const-data is dangerous.

However, since you're actually doing no caching of any intermediate results (esp. not reusing them). Guess what happens in the following code:

~~C++
void test(const char* a, const char* b);
void test2(const String& s) {
    test(s, s);
}
~~

Given the current code, `a` will be a pointer to invalid memory.