Saner alternate file switching

<C-^> in a netrw window will switch to the last open _file_ for *that
window*, if there was one. It will never switch between two netrw
buffers.

The dirstack will be flushed regardless of the way you switched from
netrw to a file - <C-^>, :b, :e, etc. (In the last commit it only worked
properly with <CR>)