Limit the number of calls to indexBar:didSelectIndex: [fixed]

Modified version of PR #4, based on feedback.

The last selected index is stored in an instance variable as requested.

We need the touch phase, to prevent duplicate event to be trigerred when the finger moved along the index bar, but not when the same index is touched multiple times with the finger being released between touches.
Imagine the following:
- I touch the index "B" (The table view then scrolls to the header "B")
- I manually scrolls the table view (let's say until the "Y" header appear onscreen)
- I touch the "B" again.

If the condition is only `stringIndex != _lastSelectedStringIndex`, no new event is trigerred, and the table view does not scroll back to the "B" header.

I hope I'm clear enough... :/

However, we could simplify the condition with

    if (touch.phase != UITouchPhaseMoved || stringIndex != _lastSelectedStringIndex)

I'm fine with this is you find it less confusing.