separate out display and state management

attempt to keep track of power states, and display them on change.  We
don't handle all power change messages yet (I think) so this isn't
complete but at least we handle our own power toggles

some other scattered fixes