Cleanup/refactoring pass on hwclock.

Inline open_wall_clock_rtc() into rtc_open(), factor out xtzset(),
inline set_sysclock_from_hwclock(), set_hwclock_from_sysclock(),
and set_sysclock_timezone().

/etc/adjtime is short enough we don't need to bother with a break.

The final "else" case in main() should always trigger because >0 in optstr
says "at most zero arguments", so the || at the end is always true, so
take the test off.
diff --git a/lib/xwrap.c b/lib/xwrap.c
index cd3c684..0a2b38f 100644
--- a/lib/xwrap.c
+++ b/lib/xwrap.c
@@ -627,3 +627,14 @@
     error_exit("xregcomp: %s", libbuf);
   }
 }
+
+char *xtzset(char *new)
+{
+  char *tz = getenv("TZ");
+
+  if (tz) tz = xstrdup(tz);
+  if (setenv("TZ", new, 1)) perror_exit("setenv");
+  tzset();
+
+  return tz;
+}