Replace the stack with a dictionary

Restoring the right position in the stack-based implementation relied on
both the direction and the order the user visited directories.  The code
only worked because - and <CR> have absolute directions.  If the user
would jump with <C-O> or <C-I>, though, the direction is relative to her
last move.

With a dictionary storing the last position for every visited netrw
buffer, restoring works even if the user used :b on a directory she
visited N moves ago.

NB: <C-I> had to be 'decorated' with :keepalt and RestorePosn() too, but
I couldn't find a way to use it inside a mapping.
Merge branch 'crumb-trail'