Git Authorization on push

#2315 

1) Adds an optional actionButton to error dialog.
2) Show GItAuth dialog before `git push` if credentials are not available.
3) Surface login failure to user and allow re-login until login is successful.
4) Show the push dialog, once the login is successful.
5) Surface 'Forbidden access' if the user tries to push to a repository with no push access.

@dinhviethoa  PTAL thanks.
Could you just use `.then((bool value) => /* do something */)` ?