enable CONFIG_PREBOOT

allows defining a 'preboot' envvar to run early, even before the
bootdelay loop
refine recovery mode

Recovery mode options have been changed to try and recover from:
- bad uboot config, preventing HDMI + keyboard access to uboot, or
- bad kernel flash, particularly in headless/no console case

For the former, a bunch of envvars are forcibly set when booting in
recovery mode:
- bootdelay=30
- hdmi mode = 640x480@60Hz
- stdin = serial,usbkbd
- stdout = serial,vga
- preboot = usb start

For the latter, the existing envvar config remains, in which the
following are searched before the normal boot files:
- /boot/bootcmd_recovery
- /boot/uImage_recovery