UpdateSubmodulesOnCheckout with TaskDialog

I've changes UpdateSubmodulesOnCheckout to be a TaskDialog instead of a bunch of checkbox everywhere. 

![image](https://f.cloud.github.com/assets/720953/1771704/f3178720-67bf-11e3-84f0-5fc441970e49.png)

The new method in UICommands called UpdateSubmodules opens the dialog and updates the submodules if necessary. 

This method is manually called in:

* FormCheckoutBranch
* FormCheckoutRevision
* FormCreateBranch
* FormResetCurrentBranch

Also, its associated with merge conflicts method:

* HandleMergeConflicts method (there are no conflicts)
* FormResolveConflicts (conflicts are solved)

So this adds support for

* Pull
* CherryPick
* ReverCommit
* Stash (not tested)
* MergeBrach

There's also a new checkbox in setings: 

![image](https://f.cloud.github.com/assets/720953/1771708/1f918df0-67c0-11e3-9606-a4e04cdc2b2b.png)