Bug in RemoveAt function

Hey, just wanted to comment that I ran into a bug with the removeAt function.

If you have a dictionary with 2 entries, and you remove the 2nd one, removeAt will not correctly remove it from the _cache.  It removes it at the start of the function, but re adds it in the if(_keys.Count > 1) block.

I fixed the problem by adding "&& index != _keys.Count-1" to the if statement