support selecting multiple entities

This replaces engine::selected_entity with engine::selected_entities and
operations that apply to the selection of entities are now applied to
all selected entities. A notable exception is that the manipulator tool
doesn't currently do anything smart when multiple entities are selected,
it simply relates to the last selected entity for now.
camera-view: follow consistent _init_type pattern

This updates the _init_type implementation to follow the more recent
style that we've been using for more recent types which keeps everything
neatly contained in one function in a way that involves less laborious
symbol renaming to copy the same initialization code between similar
objects.
update picking geometry for pointalism grids

Instead of the picking geometry corresponding to a single cell at the
centre of the geometry it now maps to a rectangle covering the whole
grid.
asset: Implement ply thumbnail generation

This adds support for rendering a lit image of loaded ply models for
use as thumbnails in the asset search area.