Simplify and generalize review UI instantiation.

Review UIs no longer need their own custom templates to set up the
models and views for UIs, or to allocate a location to pack it into.
This is all standardized now in a default review UI template, and all
the customization goes into the ReviewUI subclass.

ReviewUI now has some new fields to set: name, js_view_class,
js_model_class, and js_files. It also introduces get_js_model_data and
get_js_view_data functions.

'name' indicates the displayed name of the review UI, or rather the type
of thing being reviewed. This should generally be something like
'Image', 'PDF', etc.

'js_model_class' and 'js_view_class' are the names of the classes in
JavaScript that are to be instantiated. These are assumed to be
subclasses of AbstractReviewable and AbstractReviewableView.

'js_files' is a list of file paths. This is not fully fleshed out, and
will more than likely be replaced after moving to require.js.

'get_js_model_data' and 'get_js_view_data' return data that will be
serialized and passed to the model or view during instantiation.

Review UIs should be updated to provide these and to remove the
template_name and object_key fields. If they do need something special,
they can override the default template. There are some blocks that can
be used to add fine-grained changes.