properties: improve label for component properties

Instead of labeling each component's properties as "Component" we now
use rut_object_get_type_name to come up with a slightly better label for
each set of properties.
gaussian-blurrer: handle resizing correctly

The problem with resizing was that we didn't update the viewports and
orthographic coordinates of the RutCameras used by the
rut-gaussian-blurrer api.

This simplifies the RutGaussianBlurrer by removing the use or RutCamera
which was an unnecessary complexity when the framebuffers used are
entirely internal.

Since we use cogl_offscreen_new_to_texture to create our framebuffer we
can assume that the viewport is always correct, but we now also use
cogl_framebuffer_orthographic() to setup the coordinates.
rig-camera-view: add rig_camera_view_set_scene api

To enable reloading a new scene in Rig gracefully we need the ability to
destroy an entity scene, create a new one and point a RigCameraView at
the new scene. This adds a rig_camera_view_set_scene() function so that
the scene being viewed can be changed at runtime.
engine: more tidying up of rig_engine_init

This continues to move more of rig_engine_init up so it happens before
loading any ui to clarify what parts don't depend on ui loading.

This patch factors out code into a rig_engine_handle_ui_update() that
needs to be re-run whenever a new ui is loaded. Closely related to this
api rig_free_ux has been renamed to rig_engine_free_ui which is also
called whenever a new ui is loaded.

In refactoring this code it was noticed that RigEngine::device_transform
isn't used any more so it can be removed.

rig_pb_unserialize_ui and rig_load_xml now call rig_engine_load_post()
so that whenever a new ui is loaded then rig-engine gets an opportunity
to update other state that depends on the current ui.

A resize handler is now always registered so that we correctly handle
slave device windows being resized to match the ui's
device/width/height.

We avoid redundantly setting the camera viewport just before calling
allocate() which will also set the viewport.
split up loading builtin assets

This ensures we only load the builtin assets once during rig_engine_init
instead of repeatedly re-loading them in rig_load_asset_list
Create a new scene graph when loading

When loading a new ui we now unref engine->scene and create a new root
scene graph node. Without this then attempting to load a new ui at
runtime would result in the new entities being combined into the
existing scene.
engine: try to be more thorough about ui cleanup

This updates rig_engine_free_ui to be more thorough about cleaning up
things related to the currently loaded ui (including things created in
rig_engine_handle_ui_update). This also updates rig_engine_fini to use
rig_engine_free_ui
engine: remove unused shadow_map_camera

There was a RigEngine::shadow_map_camera that was being initialized but
not used anywhere so this patch simply removes it.
engine: avoid redundant resize requests

This avoids calling SDL_SetWindowSize if we know the onscreen
framebuffer already has the desired size. Without this slave windows
would jump around the screen whenever the ui was re-synced.
Issue naive full ui sync on journal changes

As the simplest way of keeping slave devices synchronized with the ui
being edited this hooks into rig_undo_journal_insert to trigger an ui
reload for all current slave masters.
engine: connect to all slaves not just one

If there are multiple slave devices available on the network the
pressing the "Connect" button will now connect to all of them instead of
just the first one in the list.
engine: set progress when creating a transition

In rig_create_transition() we now initialize the progress of the
transition to match the progress of engine->timeline.
load-save: only add .rig ext to .xml filenames

If we loaded a .xml file then when we save we add a .rig extension. This
patch makes sure we don't also add an additional .rig extension if we
loaded a .rig file in the first place.
load-save: use g_str_has_suffix

This switches to using g_str_has_suffix instead of using g_strrstr
followed by manually checking for a trailing '\0' NUL byte
camera-view: don't reset camera zoom on allocate

This removes a spurious reset of the camera zoom in allocate_cb() which
was probably adding for debugging at some point.
autogen: Fix the name of the source file it checks

The autogen script needs a source file to verify that it is being run
from the right directory. Previously this was using main.c but that
file no longer exists so this patch makes it use rig-engine.c
Update the .gitignore

This adds rig-slave, rig-device and the files generated by protobuf to
the .gitignore
camera-view: update view/projection with new scene

when a new scene is associated with a RigCameraView we now also make
sure to update our viewing and projection transforms based on the latest
device geometry.
asset: Don't init the asset object until it succeeds

Previously the asset object would be created and if it failed to load
a necessary resource it would just directly free the asset object and
ignore the ref-counting. This messes up the ref-count debugging
because the tracking isn't informed that the object is destroyed. This
patch makes it delay initialising the RutObject until it knows the
asset has succesfully loaded.
camera-view: Add a button to move selected entity to camera position

Pressing Ctrl+J now moves the selected entity to the position of the
view camera and also copies its rotation. This will later be useful to
move the entity representing the camera for play mode to match the
view camera.