Add an assertion on commit message.

This is what's likely to change while I'm working on this branch. This
is going to be easier to debug than a commit sha that changes.
Pass a Tree instead of a sha in the LogEntry.
Create commits with LibGit2Sharp.

This breaks all the clone tests because the commit shas change. The
commit shas change because libgit2sharp changes "\r\n" to "\n".
Limit version scope for querying merge information

When querying the merge information to determine the source changeset of a
merge, limit the version scope of the query to the bare minimum to improve
performance.

Since the QueryMerges overload taking strings for source and target calls
the overload with ItemSpecs, there is also no need to have a seperate post
VS2010 implementation. At least this is the case for v12.020827.3 of
Microsoft.TeamFoundation.VersionControl.Client.dll.
Merge pull request #532 from kgybels/improve_find_merge_parent

Limit version scope for querying merge information
Make sure the tree is right, too.
Extract the tree & commit assertions.
Ignore line endings in commit messages.
Merge better CloneTests.
Update commit shas.
Add this to the release notes.
Merge pull request #534 from spraints/commit-with-lg2s

Use libgit2sharp to commit
Add mention for #534 in release notes
Removed unused methods
Removed unused using directives
correct method comment
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
Try to be more POSIX-y?

`if ! command` appears to be invalid
(https://travis-ci.org/git-tfs/git-tfs/builds/18484621)
Merge pull request #540 from KindDragon/code-cleanup

Code cleanup