Client-side getInitialData redirect to relative URL doesn't work
Client-side getInitialData redirect to relative URL doesn't work.

## Steps to reproduce

Page A:

```vue
<template><router-link to="/b">B</router-link></template>
```

Page B:

```vue
<template><div>Page B: should not see me</div></template>

<script>
export default {
  getInitialData({ redirect }) {
    console.log('Redirecting go /c')
    redirect('/c')
  }
}
</script>
```

Page C:

```vue
<template><div>I am page C</div></template>
```

Open `/a`, click link to go to `/b`.

## Actual result

"Page B: should not see me" is displayed, even though 'Redirecting to /c' is printed in console.

## Expected result

Redirect to `/c` happens.

## Reason

The reason is that `beforeRouteUpdate` hook calls `next()` unconditionally: https://github.com/ream/ream/blob/cce861fe420c4060b1f52982ca6920611d8b2809/app/client-entry.js#L108

`handleError` should be refactored.