TfsHelperBase.GetLabels is optimized for repositories with huge amount of labels and huge amount of items.
Merge pull request #542 from IgorVyatkin/master

TfsHelperBase.GetLabels is optimized for repositories with huge amount of labels and huge amount of items
InitBranch crash on GetRootChangesetForBranch exception fixed
GetRootChangesetForBranch shouldn't download changes, because we use only ChangesetId
nofetch parameter in documentation fixed
Retry on timeout
Removed unused methods

squash! Removed unused methods
FindCommitHashByChangesetId use compiled regex
Update() fixed for case when file cannot be checkout from TFS
GetRootChangesetForBranch catch VersionControlException
VersionControlException exception handling improved
Init branch crash fixed if branch already exist (big problem with `branch --init --all`)
CreateCommit rewrited to is LibGit2Sharp
Some changes by comments
Ask Tfs server tfs branches only once
Retry rewrited to work on lower level

Workspace.Delete () can not be handled at a higher level
GetChangesets()  asks changesets by parts
ParseEntries()  called only when really needed
Garbage collection added to `clone` and `branch --all` commands
Improve finding commit for changeset number

Because commits can be shared across branches, it is better to do a single
search starting from the branches than to do a search for each branch
separately. The revision walking implemented in the git library will take
care of efficiently enumerating the graph, not visiting shared commits
multiple times.

Conflicts:
	GitTfs/Core/GitRepository.cs