Display null parent field if tag has no parent.

This was the behaviour of the API before de-RABLing; if we do change it, we
should do it deliberately.
Replace the single tag view with a de-RABLed one.
De-RABLify the artefact list.

As part of this, I had to add an extra (optional) parameter to the URLHelper
class to supply a Plek instance to look up apps. In development, we link to
the individual apps' rendering pages, so we don't have to spool up a router on
development machines, so we need to look up the URL for an artefact's
rendering app.
Make ResultSetPresenter reflect the way its used.

Allowing a callable or a class was an unnecessary customisation, given we were
using it in the same way every time. Similarly, allowing these to be omitted
entirely wasn't necessary.