Improve support for legacy references

Named character references without a trailing semicolon are invalid, but that doesn’t mean `he` shouldn’t support it.

This patch adds support for edge cases like `he.decode('&notin; &noti; &copy123')`, which should return `'∉ ¬i; ©123'`.

Fixes #3.