[core] Add BeautifulSoup and have requests use it

Replace charade with BeautifulSoup which has an MIT license.
BeautifulSoup can also use chardet just in case.
[core] Stream CSV download and limit XLS download

CSV download can be streamed because that format can be contatenated easily.
Tablib XLS has a max size of 65000 rows, so it must be limited.
Also added a "starting yield" so that downloads start early rather than later.