[BUGFIX] location: 'history' no longer blows away location.hash

This is Phase 2 of https://github.com/emberjs/ember.js/issues/4098.

Currently, if you're using `location: 'history'` and someone navigates to a URL with a hash in it (e.g. `/foo#bar`) `HistoryLocation` will call `history.replaceState()` without the `location.hash`, which immediately strips it from the URL and prevents the browser from natively scrolling the page to any HTML element with that id, (e.g. `<div id="bar">`) as well as let devs access `location.hash` for other reasons.

Because providing an ember-idiomatic way of getting/setting `location.hash` is probably quite a large under taking like query params were, this phase has the router internally strip the hash before passing it along to `router.js` library, since it is not hash-aware yet either.

(Note: This PR doesn't let the browser auto-scroll to any `#id` that's inside an ember-backed template because routes defer rendering until their model is resolved. That's a separate, more controversial PR to manually do so for all location classes)