index - don't allow empty directories in commits

If all files are removed from a particular directory
using the index.delete method, the directory will also
be removed. This better matches the command line
interface to git and what I initially expected from
grit.

This is accomplished by recursively merging the new
index items (tree of hash objects created via the
add and delete methods) with the previous tree that
the commit builds from (read in via index.read_tree)
add test for deleting directories from index

deleting all files in a directory should delete the
directory itself