Simplify updating outWait in Shell

Before, it was set to true and false at relevant moments. Now, it just
gets set to true iff anything is buffered in serialIncoming, which makes
things a bit more simple, especially with the upcoming changes.
Handle backspace on the serial console

Previously, this was handled by bitlash, but now we have to handle it
ourselves.
On serial, make arrow up reload the previous command
Don't bother running an empty command from Serial

This saves a bit of trouble when pressing enter without entering a
command. Additionally, it prevents clearing out the previous command
(which can be recalled by pressing arrow up) when just pressing enter.