Fix Issue #2003 and Update Doc

The first commit(Update libgit2) is NOT related to [Issue #2003](https://code.google.com/p/tortoisegit/issues/detail?id=2003).
I just want to update libgit2 first, because it fixes mixed EOL problem and makes the mixed EOL behavior is identical with official git.
(There is a [commit of libgit2](https://github.com/libgit2/libgit2/commit/d412165f948b77bf548234fd46fb0743f6afc3ed) fixes further EOL problem, but maybe update it later. It is related to Git for Windows 1.9.4)

The rest is trying to fix [Issue #2003](https://code.google.com/p/tortoisegit/issues/detail?id=2003) via 
 1. extending the GetOneFile()  to support blob hash as RefName
 2. and using new command "getonefile" to get file with correct EOL.


I did a test that **core.autocrlf = true** and **using .gitattributes**.
libgit2 creates the temp file with CRLF EOL, but libgit creates the temp file with LF.
(whatever the sha1 is for commit or for blob)

I suppose it is another bug about write_entry(), and I am not going to fix it currently. :P
Because libgit is the fallback, and now is better than the git.exe part (the fallback of the fallback).