Fix X11/GLX failing with multi-sample

Caused by D643, in fact we need to get the visualInfo before creating the window.
Fix T42561 (semi feature request/comeback) UVs in image editor can get
too crowded.

UVs in the same layer can be used for many images. It used to be
possible to filter UV faces based on the image, but this is impossible
now due to the way the system works, so I added an option to allow
filtering UVs based on active material index.

Rationale on using option and not being smart here (options are bad tm)
is that for some workflows, such as preserving image space by using the
same image for many materials, people might want to turn this off.
Depsgraph: Workaround for missing pose update when changing visible layers

That's like really a bummer, because currently animation data for armatures
might want to use pose, and pose might be missing on the object.
This happens when changing visible layers, which leads to situations when
pose is missing or marked for recalc, animation will change it and then
object update will restore the pose.

This could be solved by the new dependency graph, but for until then we'll
do an extra pass on the objects to ensure it's all fine.

It's done in the scene_update_for_newframe() to solve possible issues with
the render engines as well.

This finally solves issues we had with Caminandes team, where Koro would be
at the scene origin instead of being properly posed.
Reuse local view for UVs for previous commit, thanks to Campbell for the
suggestion.

Also minor compile fix after viewport patch
skip scene_armature_depsgraph_workaround when theres no armatures
Add missing notifiers for slip operator
Fix T42593: Rigify crash when I press "Generate" - corrupted IDGroup's listbase of children

Nothing related to rigify actually, recent hack in py handling of IDProp (rB3346ab03)
was breaking integrity of IDGroup's listbase of children IDProps...

Took me hours to nail this down, should have bisected for once. :/
Sequencer: handles drew outside of small strips
View3d: border would jitter on panning
Replace tooltips of copy vgroups to ... operators.

Those ops actually replace vgroups in destination, tooltips were really misleading.

Issue raised by zanqdo (Daniel Salazar), thanks.
Add Make Edge/Face to mesh Edit Mode toolbar.

The Mesh Tools have quite few crucial tools that're missing from the toolbar. This is the main one.

The tools that're here should also be reorganized a bit to introduce actual orgnization, as it's quite sporadic at the moment. Will do that later.
Cycles: Fix compilation error with enabled looging but disabled libmv
Cycles: Revert changes to inline flags enabled for release only

It appears it's not really needed for convenient debugging when
using proper flags passed to the compiler. Basically, it is -g3
and set breakpoint to a function as if it's not in the namespace.

Not as if a code was any wrong, just it's possible to have more
clear solution for the issue i've tried to solve in the past.
Cmake windows/msvc minor cleanup
Cmake windows, removing more redundant things
cmake / windows cleanup
Cleanup: remove unused redraw flag
UI: cleanup next/prev order in menu code

Recent flag re-order broke it since bits overlap, but logic here was far too complicated & fragile,
Checked the type of each button when testing which direction to handle events as well as block direction.

Now store the block-flipped state as a flag.
CMake: cleanup, use find_package for pthreads
Fix T42567: Color Wheel Buttons do not autokey correctly.

In fact, any button controlling a whole array of values were broken
because they always only keyed the index of the single fcurve returned
by `ui_but_get_fcurve()`, now pass button's rna_index value instead.