Improve error handling

This removes the many (often redundant) press_enter() calls. These were used to give the user time to read a message.

The only time a message would be removed is when ncurses is destroyed. Therefore the call to nc_destroy will prompt you to press enter.

Ncurses is always cleaned up before exiting, making this is a catch all case including fatal errors, dropping to shell, kexec, etc. This is as far as a user should get.

If ncurses fails it will attempt to display a message with printf(), and optionally drop to a shell if it is enabled, followed panic. An error here is most likely our fault.

If the console screen is not available then there is no way to contact the user. There is not much to do in this case, we simply panic and reboot. An error this early is probably in the kernel.