The problem
===========
For armature, if the active object was in pose mode and the newly
selected armature data (not the pose, but the edit armature) we would
get a crash.
For mesh objects, the issue would happen with the active object in object mode.
Then the new selected object would switch to edit mode, however the overall
mode would still be object mode, leading to unsynced mode across the objects.
The solution
============
Using shift to extend selection makes current selected (compatible)
objects to go to edit mode as well. Otherwise only the newly selected
object will switch to edit mode.
This also works if you are in edit mode for a curve, and click in a mesh icon.
This also changes the rules for multi-object editing (or rather, how we
put objects in and out of it). Now shirt is also taking into
consideration there. So if you simply click in another mesh object's
data, it will have only the newly selected object in edit mode.
To reproduce the old behaviour you need to use shift to include the
newly selected object in the multi-edit party.
Reviewers: campbellbarton
Subscribers: brecht
Differential Revision: https://developer.blender.org/D4344