[TECHNICAL-SUPPORT] LPS-44122 Search: escape & highlight don't work well together

Description from https://github.com/ealonso/liferay-portal/pull/135:

\cc @lipusz 

Methods StringUtil#highlight & HtmlImpl#escape work well individually
It is possible to search for a term that actually also occurs in an espace sequence, for example: (term) 34 --> (quote) '"' --> & # 34;
To deal with it, we should split the existing logic into a 3-steps method:
1. Highlight the given text using escape-safe tags
2. Escape the result text from 1.
3. Replace the temporary tags with the correct highlight tags

Note: we cannot use "$" sign in the escapeSafeHighlight variables, as "$" is a reserved group symbol in regex, because it would result

"java.lang.IllegalArgumentException: Illegal group reference"