[WIP] Letter Case Autocorrection

e.g. GGFLoat turns to CGFloat on pressing space

for now replace when dismissing completions if there was one case-insensitive exact match
[WIP] Wrong Word Order Completion

e.g. `makerange` now matches both `NSMakeRange` and `CFRangeMake`

for now just try to match the string repeated twice (with ranges matched in the first half eliminated from the second), which seems slow
Keep selection when typing more matched letters (#41)

i.e. when previous selection is still on the list and has the same number of matched ranges
Declare -[NSArray firstObject] in a category.

Fixes #42
Remove redundant count checks.
Actually check range location and length when deciding wether to keep selection (#41)

otherwise if *N*SNotFound was the top match for *N* after typing *NO* it would be kept as NS*No*tfound
Minor refactoring of Completion Session + Fuzzy

- extract a helper for getting selection
- extract a helper for retrieving search set
- extract a helper for filtering by score
Fix completion list window positioning with score column enabled

- now it is aligned with typed text
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
Add option to disable cursor hiding

I imagine some may find it confusing
Merge branch 'autocorrection' into develop
Add autocorrection options to Settings under 'Experimental'
Add Xcode 6 Beta UUID
Trick `DVTTextCompletionInlinePreviewController` into using `name` more directly

as in Xcode 6 beta the choice no longer depends on `rangeOfFirstWordInString:`
Actually, make InlinePreview use completionText, but just without tokens

Swift parameter lists look much better this way...
Method definitions too...
Add some additional separators in convertRanges to support more of Swift
Skip leading non-identifier characters for scoring purposes

makes Swift parameter lists scores and ranges more sane