Cleanup: Code deduplication for similar passes.
Vert-rip left an invalid selection with (>1 verts)

Now report the error and fail early.
Fix T40595: File broken after "make local->all"
Fix T35952: Switching a single handle to free would lock the others alignment
Fix View3D 'Auto Keying' alignment (when dpi!=72)
Fix setting Curve-handle type moving the wrong one

Issue noted in T35952, now if you convert a free handle to an aligned handle,
it will move the selected handle.
Fix T41463: Mirror Modifier breaks Automatic-Weights in weight-paint mode

The problem was it used copied verts on the opposite side.
Fix wrong track of the memory when doing device vector resize before freeing it

This is rather legit case which happens i.e. when having persistent images enabled
and session is updating the lookup tables.

Now device_memory keeps track of amount of memory being allocated on the device,
which makes freeing using the proper allocated size, not the CPU side buffer
size.
Write Compressed blend files directly

Writing compressed files would write the uncompressed blend, then re-compress on-disk.

Use a wrapper for open/write/close commands
Fix T41704: 2.71.6 no longer reading user ui panel arrangement from earlier saved blend files.

This reverts rB52c06440d8e51c8661a679bcb33742666ce8dbf9 and rBe40d8258bb46926a1aecf51236822532397993f3
(tabname is old 2.4x tabed panels system, *not* new 2.7x tool tabs!).

Also disabled (#idef'ed) everything regarding tabname/tabed panels for now, we may even remove it completely,
would make things clearer imho.

Note files saved with 2.71.6 up till now would have two versions of some panels in store (with two different
values for their tabname), can give some order oddities in those cases, which have to be fixed by hand...
Fix related to previous commit: do not store panels (state, position, etc.) in default startup.

In this case, we want to use defaults as defined by UI code (among other, from order of registering),
there is no point in storing those data in factory startup.
Fix T41713: Lattice - Influence vertexgroup in curve modifier gets ignored

This was never implemented, actually... Was also the occasion to rework a bit
`curve_deform_verts()`, code there was sometimes needlessly complicated and slowish
(like getting weight from dm vertex per vertex, instead of whole array at once...).
Metastrips: disallow making a metastrip with only one strip present.
Attempt to solve T41708,

Refresh always when clicking on a palette color (state here may be same
as state of button, not causing a refresh as it should)
Fix T41714: Maya and 3DS keymaps throw error when.

Change in SEQUENCER_OT_select's left_right parameter...
Separate operators for Link and Append.

Since the choice to link or append has been removed in the file browser operator panel,
there was no way to tell whether as a user you were linking or appending.
To fix this the proposed patch separates the operators.

Reviewers: campbellbarton, carter2422, venomgfx

Subscribers: fsiddi

Maniphest Tasks: T41593

Differential Revision: https://developer.blender.org/D770
Fix T41715 fill tools not respecting alpha lock
Fix T41716, crash with image mode when painting without materials.

* As always, make sure all slots of the object have a material
Fix broken maya/max keyconfigs (again) after link/append separation.
Cleanup: de-duplicate link/append props