Add support for date ranges

* First row can sometimes contain 'dd.mm.yy to dd.mm.yy'
Add ability to generate text CSV
CSV::Table additions

* parsing of headers that are in rows without th
* parsing of captions for captions that are not in a <caption>
Rename Algeria's HTML

* To be consistent with what Chrome saves
Make table cope with:

* optional tbody
* caption in non-semantic place
* header in non-semantic place
Devolve date ranges into own class

* Add support for all types of range required to enable the parsing
  of one of the most inconsistent docs, the French history