Include the hash fix as part of the resetScrollPosition implementation, as that is where it belongs, and how we can restore onload to being at the same level of abstraction
Turn intention-revealing variable + comment into intention-revealing method alias
Extract installHistoryChangeHandler
Refactor fetchHistory to just work off the cachedPage it has been passed, since the history handler is already doing the lookup from the pageCache anyway
No reason to wait on initializing the referer until we have verified that Turbolinks is active -- its a weird initialization flow
Reorder variable declarations by relation and proper order
Spacing
Add console logging for page:restore events so its easy to see what comes from the cache
Fix that referer of course needs to be cached per visit and roll the implementation that had spilled from fetchReplacement into visit