constraint: Add a private header

And move the only private ClutterConstraint method to it.

This commit also sneaks in a change that makes sense for the debugging
of the update_allocation() method, which checks if the allocation was
effectively changed.
constraint: Add the ability to update the preferred size

Constraints can only update an existing allocation, which means they
live only halfway through the layout management system used by Clutter;
this limitation makes it impossible, for instance, to query the
preferred size of an actor, if the actor is only using constraints to
manage its own size.
actor: Update preferred size using constraints

If an actor has any constraint that may affect its preferred size, then
it should query them when computing its preferred size.
bind-constraint: Update the preferred size

Bind the preferred size of an actor using a BindConstraint to the
preferred size of the source of the constraint, depending on the
coordinate of the constraint.
docs: Add ClutterConstraintClass.update_preferred_size()
constraint: Fix update_allocation()'s return value

The update_allocation() method returns TRUE if the allocation was
changed.