Fix size misrepresentation in HklHash

HklHash had a nasty bug where the size of the hash wouldn't be decremented if you attempted to remove a value that was stored in a HklTree (which means it was involved in a collision during insertion).

This was fixed by adding a size attribute the the HklTree and using that attribute when removing values from a tree contained within the hash.

Closes #125

/cc @pyrated