Fixed issue #1886: Fetch&Rebase should allow automatic branch update if FF

the idea is from the issue [246](https://code.google.com/p/tortoisegit/issues/detail?id=246), [1608](https://code.google.com/p/tortoisegit/issues/detail?id=1608), [2248](https://code.google.com/p/tortoisegit/issues/detail?id=2248), etc.

I see some pattern about commands function in CAppUtils:
1. open a dialog to collect input data
2. prepare the command arg.
3. prepare some post command depends on the executed result
4. run that command
(5. each command could retry)
(6. support better /closeonend)
7. run post command

I can imagine that user can make their own work flow. 

For me, the first step is try to fix issue 1608 => try to refactor them to approach the pattern, then add the "retry".