disable creating branch from other than master.

1) Show option of the sourceBranch for creating a new branch.
2) Only allow master and remote branches as sourceBranches.

@dinhviethoa PTAL thanks.
A user can choose a remote branch which are always prefixed with `origin/branchName`. This will only create a local branch tracking the head commit of the local branch.

If a user wants to create that branch on server, he has to push the branch. This is consistent with the command line behavior.