time-of-week fix; work around compiler bug

* Packed enum in base class caused incorrect conversion from derived
packed enum: appeared to treat enum as a bit field, causing code for
switch statement (on derived enum) cases to be incorrectly removed.
Weird.
* ToW incorrectly used 0..6 day of week instead of 1..7
* Extra comments for GPS-to-UTC conversions
* Default config omits HDoP
* UBX protocol now parses in place (i.e., into `fix`) instead of
requiring `storage` (really a buffer).  See also `parseField`.
* `::run` includes a Power::sleep.  May need canonical `yield` for
multithreaded implementations
* Implement UBX NAV_STATUS message so that status field can be filled.
Required for non-NMEA configuratuons.
* TODO: remove debug, separate UBX and NMEA protocols into two classes,
add config item for UBX buffered methods `storage_for` et al.