Don't retrieve all changes when getting just last changeset id
refactoring
Shorten workspace to mitigate ntfs path length limit

(See https://github.com/git-tfs/git-tfs/blob/master/doc/Set-custom-workspace.md
for problem description)

Now that the ".git\tfs\RemoteId\" directory is only used
to create a "workspace" directory and is cleaned after
each command run, we could instead use a unique and
common directory with a shorter path (".git\~w")!

This way we are less likely to hit the ntfs path length limit
because we are not dependent of the remote id. If we
succesfully clone the trunk, we will be able to fetch all the branches
(except if there is files deeper needless to say)
Set quick rcheckin as default rcheckin process
Add checkout command

git tfs checkout changesetId [-b=branch_name]
ex: git-tfs checkout 2365
      git-tfs checkout 2365 -b=bugfix_2365

Solve #563
Add a parameter to only return the sha of a commit given a changeset id
Checkout command doc
Merge pull request #623 from pmiossec/add_checkout_command

Add checkout command
Correct links toward releases
Merge pull request #618 from pmiossec/shorten_workspace_path

Shorten workspace to mitigate ntfs path length limit
Merge pull request #625 from pmiossec/perfs_get_last_changeset_id

Perfs get last changeset id
Merge pull request #620 from pmiossec/recheckin_quick_as_default

Set quick rcheckin as default rcheckin process
Use libgit2sharp to find commits to checkin
Adapt FindParentCommits() to return nothing when commits are not parents
Unit test