stage: Check coordinate validity in do_pick()

We do some argument validation inside _clutter_stage_do_pick(), which is
the internal version of clutter_stage_get_actor_at_pos(), but we don't
do coordinate space validation, and instead we rely on call sites doing
the right thing.

We should, instead, remove the argument validation from the internal
function, which is pointless and against the coding practices, but do
coordinate space validation internally.

https://bugzilla.gnome.org/show_bug.cgi?id=722322
settings: Add window scaling related settings

We share two settings with GDK, so we can pick the window scaling factor
and the unscaled font resolution when we initialize Clutter.

https://bugzilla.gnome.org/show_bug.cgi?id=705915
Check for cairo_surface_set_device_scale()

Like gtk+, we don't want to bump the dependency of Clutter for that
function alone.

https://bugzilla.gnome.org/show_bug.cgi?id=705915
settings: Handle window scaling factor internally

We want the settings object to handle setting and getting the
window scaling factor value, both through backend-specific settings and
through the CLUTTER_SCALE environment variable. This means turning the
ClutterSettings:window-scaling-factor property into a readwrite one,
instead of write-only, so that ClutterStage implementations will be able
to query the window scaling factor on construction.

https://bugzilla.gnome.org/show_bug.cgi?id=705915
x11/stage: Remove CLUTTER_SCALE handling

Use the ClutterSettings:window-scaling-factor property instead.

https://bugzilla.gnome.org/show_bug.cgi?id=705915
x11/stage: Resize on window-scaling-factor changes

If we get a change in the window scaling factor we want to resize the
backing store of each stage, so we use the notification on the
ClutterSettings:window-scaling-factor property to do so.

https://bugzilla.gnome.org/show_bug.cgi?id=705915
settings: Remove explicit stage scaling factor update

We can rely on the window-scaling-factor property notification instead.

https://bugzilla.gnome.org/show_bug.cgi?id=705915
canvas: Use the window-scaling-factor setting

ClutterCanvas is a ClutterContent interface implementation; this means
that it can be created and modified regardless of whether it is
associated to a specific actor or a stage. For this reason, we cannot
walk the hierarchy and get the window scaling factor for high DPI
density displays out of the ClutterStage when we create the Cairo
surface that we will use to draw the canvas contents on.

We can use ClutterSettings:window-scaling-factor instead, since it's
what each ClutterStage will use anyway.

This will get slightly more complicated when we support per-output
window scaling factors (like on Wayland), but that will require changes
in the entire settings architecture anyway.

https://bugzilla.gnome.org/show_bug.cgi?id=705915
canvas: Add scale-factor property

We need to provide an escape hatch to ClutterCanvas so that it's
possible to override the window-scaling-factor ClutterSetting. This is
going to be useful in the future in case the user has better knowledge
of the window scaling factor that is going to be used with a specific
set of ClutterCanvas contents (e.g. on different outputs or stages).

https://bugzilla.gnome.org/show_bug.cgi?id=705915
docs: Update the test-related documentation

The test suite layout and usage have been changed, so the documentation
needs to be updated to reflect the change.
cookbook: Fix build of the examples

We don't have a tests/data directory any more since the test suites
reorganization; the cookbook examples, though, rely on the existence of
the redhand.png image. In order to fix them, we copy the file in the
examples directory, and we reference it directly. Since we need it for
the examples, and we install the example code, it's also necessary to
add the image to the EXTRA_DIST rule.
cookbook: Temporarily disable the scribbler example

The exported symbols regular expression in cogl-path is broken, and does
not include cogl_set_path() and cogl_get_path(), which means that we
cannot link this example. In order to distcheck Clutter, we temporarily
disable the example, with the intent of reverting this commit once Cogl
is fixed.
x11/stage: Store new size on unrealized resize()

If the StageX11 is asked to resize itself while not being realized, then
we just need to store the new size and return.
settings: Add CLUTTER_DPI_SCALE

Like we do for the windowing surfaces, we should have a run time knob
(in the form of an environment variable) to allow changing the scaling
factor of the font resolution.
settings: Make unscaled-font-dpi override font-dpi

The :unscaled-font-dpi property is used to override the existing
:font-dpi value when running on high DPI density displays; since it's a
write-only property we don't need to have a separate storage, nor we
need to choose between :font-dpi and :unscaled-font-dpi depending on
whether or not either has been set. If we select which one to use
between :font-dpi and :unscaled-font-dpi when computing the font
resolution, we end up breaking the code that relies on changing
:font-dpi directly on a per-Settings basis.
build: Remove .gitignore on distclean

Fixes distcheck.
Release Clutter 1.17.2
Post-release version bump to 1.17.3
Bump the Cogl dependency

In order to build the cookbook examples, we need a version of Cogl-Path
that correctly exports all its symbols; this has been fixed in Cogl only
after the 1.17.2 snapshot was made.
Revert "cookbook: Temporarily disable the scribbler example"

This reverts commit 515a8fcfb50df8981d568e7a075ecb5c94984825.

The exported symbols regexp used by Cogl-Path has been fixed.