unescapeHTML() bug fix

unescapeHTML() unescapes two layers of escape codes that have been escaped multiple times. For example:

  '&amp;gt;'.unescapeHTML() == '>' // true
  '&gt;'.escapeHTML().unescapeHTML() != '&gt;' // true

My change fixes this so that only one layer of HTML escaping is unescaped:

  '&amp;gt;'.unescapeHTML() == '&gt;' // true
  '&gt;'.escapeHTML().unescapeHTML() == '&gt;' // true