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)
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
Better handling big history

- Fetching and creating commits by lots (of 100 max)
- Querying history bounded when knowing the last changeset id wished

& little refactoring