improve performance of 2-edit candidate generation

We only generate 2-edit candidates for single-edits that have all of their
words present in the dictionary. This dramatically improves performance.

Further, by reducing the uniform edit probability from 0.05 to 0.01, we are
able to improve accuracy from 360/455 (with 2-edits) to 380/455.

Also instead of returning null when no valid candidates have been generated,
return the original query.