Added HTML reader/writer

This is a different implementation than in PR #2122. I can add more user-defined options for input and output in the ``htmldict`` parameter of ``HTML.__init__`` if anyone has ideas for what customizations might be useful.