Rename fuzziness/min_similarity to edit_distance

A lot of different API's currently use different names for the
same logical parameter. Since lucene moved away from the notion
of a `similarity` and now uses an `edit distance` we should generalize
this and encapsulate the generation, parsing and creation of these
settings across all queries.

This commit adds a new `EditDistance` class that handles the renaming
and generalization in a backwards compatible manner.

Closes #4082