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.

Why do we need to check for the touch phase? Its also confusing the way these conditions are wrapped in !(). Can we simplify this condition to the following?

```objc
if (stringIndex != _lastSelectedStringIndex) {
  _lastSelectedStringIndex = stringIndex;
  [self.delegate indexBar:self didSelectIndex:stringIndex];
}
```