Read html with colspan rowspan
 - [x] closes #17054
 - [x] tests added / passed
 - [ ] passes ``git diff upstream/master -u -- "*.py" | flake8 --diff``
 - [ ] whatsnew entry

There's a parsererror include in the test file that doesn't need to be there any more since I removed the test.

whatsnew entry:

`read_html` now:
- handles colspan/rowspan in table elements
- attempts to infer table headers in the absence of `<thead>`