Seperate kbnUrl.change() and kbnUrl.redirect()

Fixes #1626 

**Replication steps:**
 - open [http://localhost:8000/#/settings/objects](http://localhost:8000/#/settings/objects)
 - click an object that you want to edit
 - click back which will skip the previous page

**Cause:**
When the object is chosen from the list, `kbnUrl.change()` is called with the new url. After updating the `$location` service, `kbnUrl` tries to detect if it should force the `$route` to reload, which it decides to do because the new url does not match the current route. Unfortunately this causes the `$routeChangeStart` event to be triggered in the wrong tick, and the `$state` service unknowingly replaces the url we want in history.

**Solution:**
`kbnUlr.change()` will no longer reload the route. If you need the route to be reloaded immediately, it is because you want to do a redirect (which will replace the current url with a new one) and you should instead call `kbnUrl.reload()`
As discussed, we may be able to auto-trigger a reload when the route isn't actually changing. I'll leave the implementation up to you - just make sure you include tests ;)