Parser for basic EDTF dates, including year, and decade
@type edtf_attribute() :: {:unspecified, integer()} | {:uncertain, integer() | boolean()} | {:approximate, integer() | boolean()} | {:significant, integer()} | {:earlier, boolean()} | {:later, boolean()}
@type edtf_type() :: :date | :century | :decade | :year
@type t() :: %EDTF.Date{ attributes: [{edtf_attribute(), any()}], level: integer(), type: edtf_type(), values: [integer() | t() | [t()]] } | nil