Use TreeDefinition instead of index to build tree
Merge remote-tracking branch 'origin/master' into no-index

Conflicts:
	GitTfs/Core/TfsChangeset.cs
Use LibGit2Sharp.Mode in place of strings.
Split IGitTreeBuilder.

IGitTreeModifier: TfsChangeset only needs the Add and Remove methods. So
those methods are part of IGitTreeModifier.

IGitTreeBuilder: GitTfsRemote needs to pass a IGitTreeModifier to
ITfsChangeset, and call GetTree() too.
:fire: GitIndexInfo
:fire: HashAndInsertObject
:fire: temporary index stuff

This dropped the time to run unit tests on my machine from ~8.3s to ~6.6s!
:fire: more obsolete code
Merge pull request #529 from spraints/no-index

No more GitIndexInfo