X11: Compute monitor scale per output checking valid global values

Reuse generic scale computation code in order to also compute the available scaling values when global scale is set, and in such case, just use constraints to define the scaling levels.

Also, expose to DBus all the available scaling values per output in this case, and don't do that only after that the mode has been changed.

It's then up to gnome-control-center (cfr gnome-control-center!314) to only show the valid configurations for such setup, more than to mutter itself.

Mutter however, has to verify weather the passed values are acceptable, and so I've adapted the code for such case.

Control center change can land independently from this (and the other way aroud), since no API or behavior has been changed, in case CC is not updated yet, mutter will just notify it that the user might have set an invalid value.