Allow navigation to the same URL.

Update event handling to no longer ignore clicks and `spf.navigate` calls to
the same URL.

If navigating to the same URL and it contains a hash (e.g. from `/page` to
`/page#target`), short-circuit, attempt to scroll instead of sending a request,
and add a history entry for the destination.  This matches browser behavior.

If a navigation to the same URL occurs, either a by request or scroll, update
the existing history entry instead of adding a new one.  This also matches
browser behavior.

Closes #126.
I understand that we only want to navigate one at a time, but could you explain why this is necessary in the context of this PR?