C++ IdentifierUtils::RemoveIdentifierFreeText behaves incorrectly.

Try the following code:
```c++
#include <cstdio>
int main() {
  char c='\\';
  printf("This shouldn't break auto-complete.");
  const char* my_super_long_name = "that_wont_be_completed";
  // And you will get "weird" auto-complete options
}
```
You can see that there's no `my_super_long_name` in complete options, and `that_wont_be_completedweird` in complete options.
The problem comes from incomplete regular expression in IdentifierUtils.cpp that doesn't handle the case when `\` is escaped by itself.