Update tests & parser

* Preserve label text- don't normalize things like b.p > BP or b.c > BC

* Allow BC/AD label at the front of dates

* Break ISO8601 year format by being lenient with year numbers. The
  standard requires years that are not 4 digits to have signs, and
  requires years with less than 3 digits to be zero padded to 4 digits.

* Partial support for approximate years. Detects leading labels "~",
  "around", "c", and "ca". Dates with these leaders are marked as
  "approximate".
Add support for uncertainty indicated by question mark