PeriodBuilder supports value equality and hashability. Why?
a. It's not particularly usual for builders to support these operations, since
they're almost never compared with other instances. (Also insert standard
comment about hashability for mutable values.)
b. PeriodBuilder actually supports a _different_ notion of equality from
Period, because absent values _are_ differentiated from zero values (while
they're not in Period).