Improve s:save_first_col() and related autocmds

These changes are to prevent using :undojoin unless absolutely
necessary. Update b:normaltick on BufEnter and WinEnter autocommands.
Handle all 1, 2, and 3 window layouts without using :wincmd.