Refactor HTML metadata parser

Rewrite the HTML metadata parser to make it faster and more robust.
Fixes #1217751 [adding XHTML book: some METADATA  is not used](https://bugs.launchpad.net/calibre/+bug/1217751)