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.
This could be cleaned up considerably by just providing a fallback renderer. Also, I don't think using *default* in the option name makes sense here, it implies that there are multiple renders that could be applied.

```js
this.renderText = this.options.renderText || function (text) { return Util.escapeHTML(text) };
...
load: function (field, annotation) {
  if (annotation.text) {
    $(field).html(this.renderText(annotation.text));
  } else {
    $(field).html("<i>" + _t('No Comment') + "</i>");
  }
```