Recreate git.Repository() on each call

It appears that pygit2 has similar to mercurial’s issue with statuses
(they are not updated) and needs to be regenerated on each call as well.
Implies to index statuses only though, that is why I used to think
pygit2 does not have this problem.
Add additional_key to memoization function

Closes #29.
Don’t raise an exception when encountered untracked file