Do not try keep the selection when it was the best match (#41)

this covers the case when `str` matches `stringWithFormat:` best,
however `string` matches `string` best due to complete match
Improve range conversions

- handle selectors with repeated segments (-test:test:test:test:)
- handle selectors with empty segments (-first::::last:)
- handle other separators than :
- improve performance a little
Correctly underline usefulPrefix if it spans multiple segments
Hide insertion point if completion isn't prefix and inline preview is shown