Introduce defaultRenderer for Viewer

This PR is a prerequisite for reworking the Markdown plugin (https://github.com/hypothesis/vision/issues/125).

It introduces a new option (called `defaultRenderer`) for the `Viewer`.
What it does is only, if this option is set (of course the `defaultField` needs to set to true) then it calls the given function to produce the rendered text field.

I think the html sanitization should be the responsibility of the set function.
Ah sorry, just noticed, if this is only ever used in the constructor closure, then no need to assign it to `this` just have a local `renderText` function.

Secondly, prefer named functions over assigning anonymous functions to variables, it give much better stack traces when debugging.

```js
function defaultTextRenderer(text) { ... }
// vs.
var defaultTextRenderer = function (text) { ... }
```