Don't add empty lines to history
Handle multi-line input better with CancelLine

Like cmd, we leave the input visible, but I appended
^C (or whatever key was used to cancel) so there is
a clue input was canceled.

Multi-line input is preserved as well.
Correctly classify assignment tokens as operators