Contains now does an inexact match for more than one word in the same field. Before, it would only match if the words appeared exactly like the query. Exact now does an exact match
If queries contain special search API characters (e.g. ":") then they need to be quoted so that the underlying API can actually parse the query.

TODO: Do this on the final query and on a term-by-term basis, otherwise filtering on a field with __contains by a query that contains a special character will break.
Fields that are snippetted have a '.' at the end if there are no ellipses. This does a horrible test to remove the '.'
Remove quotes from words to be snippetted since they break the search API