Read html tables into DataFrames

This PR adds new functionality for reading HTML tables from a URI, string, or file-like object into a DataFrame.

#3369