lots of cleanup, fix XSync bug in backlight_op
- use float instead of double, we don't need the extra precision
- eliminate dim() and brighten(), just call stepper() directly
- simplify XSyncAlarm setting and resetting
- primarily use XPeekEvent instead of XNextEvent so when we break
out of stepper(), the alarm event is still on the queue waiting to
be read and processed
- in backlight_op, don't discard events in the XSync call; this is
what was making it randomly not notice the idle timer resetting
until stepper was done and the idle alarm reset