Default to None values for missing tz components
Add constants for lengths, and use those instead of magic numbers
Condense some test code while actually testing more
Use binary literal notation for precision tags

This makes it easier to read alongside the spec.
Correctly extract D and T components from DTS values

The value was shifted by 6 bits twice, sintead of only once.
Correctly unpack empty pieces as None