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.


What's the issue here? Why the file has to exist in the working tree?