Fixed insertion errors where insertion index is wrong

I found errors in `insertObject:pairedWithKey:atIndex:` where:
* Inserting at `[keys count]` (or `[objects count]`) always inserts the object at index 0. This is caused by initializing the variable `idx` to 0 at line 923, and `idx` not being set to the argument `index` if `[pairs objectForKey:key]` is in fact nil.
* (at lines 925-926) If `index` is less than `[self indexOfKey:key]`, the object is later inserted at `index - 1`. It should be inserted at `index`, and all existing objects from that point to the end of `keys` and `objects` should have their indices incremented by 1.