Expose a BatchSize option...

Since 21f36fa47c79246afe9a150f3ca46b5afc0190fe, tfs changesets are
 fetched by batches of 100 changesets (instead of all at once)
 to better support big history when cloning (and use less memory).

This option let the user specify the size of the batch
(because perhaps even 100 is too big for some big repositories).

Values accepted:
x < 0 => Only one batch with ALL the changesets
x == 0 => default value of 100
x > 0 => batches of x changesets
Save the option only when cloning
Doc
Replace one-off BatchSize with a pattern for command-line + git config values.
Make it build...
When no value found in the git config file, use the default one specified
Add a method to persist options in git config file
Unit tests
release note...
Merge pull request #639 from pmiossec/batch_size_option

Expose a BatchSize option...
Some silly people could add changes when renaming a branch
Detecting an branch rename changeset
Process changeset when with new branch (instead with old one)

Ignore rename changeset when discovered because
we want to process it as a changeset of the renamed branch.

This way, if changes are made (other than the branch renaming),
there will be fetched in TfsHelperBase.GetChangesets()!

Before that change, there would have been not fetched
because the tfs path was the one of the old branch but
the changes belong to the new renamed branch path!
Manage case where the first changeset of a clone is a rename changeset