Issues 305: don't overescape strings at extraction time

* We now only escape single quotes at extractions and leave other special characters alone (&\<>")
* We escape special characters at display time
* Utils::cleanSearch() renamed to Utils::cleanString() and no longer sanitize strings for security (use Utils::secureText())
* Searches for special characters such as &brandshortname; or \ now work, same for API
* Google and Bing links no longer include html entities
Not sure I follow the reasoning here: the existing code did a bunch of conversions like ```&quot;``` to ```@quot;``` to avoid ending up with ```&amp;quot;``` when replacing ```&``` with ```&amp;```, and then restore real entities.

What are we doing here?