Minor TupleDictionary Optimizations

There were quite a few redundant floors, and some unnecessary function calls. I have removed the redundant code in an attempt to slightly optimize the implementation.

The biggest change is that since `getKey()` is already flooring it's input and output, other methods that use that function can skip flooring for those values.

I changed `reset()` to reset both arrays in the fastest way possible. But it occurs to me that you are treating `data` more like an object than an array; consider using that instead so you don't have the array overhead that is not being used.

Hope this helps!