`Duration.t` and `Duration.unit_pair` referenced `Calendar.microsecond()`,
whose value is a `non_neg_integer`. However, durations may represent
negative amounts of time, negative microsecond values are advertised
by the module documentation, produced by parsing, and returned by the
module's own doctests:
Duration.from_iso8601!("PT-0.5S")
#=> %Duration{microsecond: {-500000, 1}}
Introduce a dedicated `Duration.microsecond()` type whose value is an
integer and whose precision is 0..6, matching what `new!/1` validates.