Revamp hidden timeout handling by adding a new timeout_style environment variable and a corresponding GRUB_TIMEOUT_STYLE configuration key for grub-mkconfig. This controls hidden-timeout handling more simply than the previous arrangements, and pressing any hotkeys associated with menu entries during the hidden timeout will now boot the corresponding menu entry immediately (LP: #1178618). As part of merging this, radically simplify /etc/grub.d/30_os-prober; if it finds other OSes it can now just set timeout_style=menu and make sure the timeout is non-zero.