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 don't think this is good. In a patch conflict the file can be missing in working tree (e.g. be renamed). git_checkout_file should stay independent of working tree.