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.
This is new logic to ensure that hash-based navigation clicks / `spf.navigate` calls are properly stored in history (to match browser behavior).

I had added this here from an earlier version when I was calling `navigateScroll_` from each of `handleClick_`, `handleHistory_` and `navigate`.  After moving the call to `navigateScroll_` into `navigate_` instead, it's not needed here.

Moved to be called from `navigate_` instead.