Memoize index

Hello,

I had some problems when using something like:
@repo.index.read_tree('master)
@repo.index.add(...)

Because each time the .index method is called, a new Grit::Index is returned with an empty tree.

This commit memoizes this Index to @index