Add a better way to find the TfsParentChangesets

Correct Tfs remote returned when using option `-I` in the case of a merge commit. It was returning the name of the
Tfs remote with the higher changeset id instead of the Tfs remote of the current branch (by following topology!).

Also remove a call to external git command...
and refactoring GitTfsRemote.GetTfsChangesetById because could not be based on FilterParentTfsCommits() anymore
Always return stub remotes when not found and let that fail when a real remote is needed

it helps better manage some cases...