Parse numeric character references in unescapeHtml

This fixes #151.

Instead of doing a whole lot of replaces, this code simply scans through the string once replacing each escape. A little more complicated, but this brings it closer to the spec (it does not parse all named character references, though, see http://developers.whatwg.org/named-character-references.html#named-character-references for the whole (long) list).