CMake: disable some build option defaults T42569

This commit disables some lesser used dependencies
for Linux/Unix systems by default.

Run: `make full` to enabled options used in release build.
CMake: add 'full' to 'make help'
update dna exporter for API changes

also print html name.
Cmake add installation of redistributables for msvc 2013
Add Murmur2A hashing feature to BLI

Murmur2a is a very fast hashing function generation int32 hashes.
It also features a very good distribution of generated hashes.

However, it is not endianness-agnostic, meaning it will usually generate
different hashes for a same key on big- and little-endian architectures.
Consequently, **it shall not be used to generate persistent hashes**
(never store them in .blend file e.g.).

This implementation supports incremental hashing, and is a direct
adaptation of reference implementation (in c++):
https://smhasher.googlecode.com/svn-history/r130/trunk/MurmurHash2.cpp

That cpp code was also used to generate reference values in gtests file.

Reviewers: sergey, campbellbarton

Reviewed By: campbellbarton

Projects: #bf_blender

Differential Revision: https://developer.blender.org/D892
Cleanup: headers
Cleanup: use BLI_hash_ prefix for md5 api
Don't assign wrong datalayers to gpuattribs in edit mode.

layer index was being obtained for loop data types but we referenced
Tessface data types

NULLing those out since only the data offsets are used in edit mode and
address sanitizer complains about freed memory access.

Also minor comment in texpainting
Fix vertex colors being displayed wrong in GLSL in edit mode. Looks like
swapping the colors is no longer needed.
UI: Rename Addons -> Add-ons

D812 by @thefallenweeble

internally variable names & paths remain the same, this is for labels & tips only.
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.