Consolidate DOM logic under `tesseract.dom`

Separating it into `tesseract.impl` for implementation details versus
the actual implementations was not as straightforward as putting
everything under the `tesseract.dom` namespace.