Don't pass shell=True to core.run_command()

On Windows, the `Git.execute()` method was passing `shell=True` to the `core.run_command()` function.  This was to avoid a console window briefly popping up on the screen each time git-cola invoked git, which could happen if git-cola was invoked using `start pythonw git-cola`.  But, using `shell=True` is generally undesirable.  This change stops passing `shell=True` and instead creates a `STARTUPINFO` structure and configures it to ensure that any child process window is hidden.

Because the Windows shell is no longer being invoked, the `replace_carot` function is no longer needed and is removed.