Merge 2.10.x into master

Merge difficulty: moderate.

The biggest trouble was caused by 55decf733eb361c235ef1bd9039e5c6226202a96 because it overlaps with 30e2e3a78f9061ea93352427cb0ca205203041f0 Please refrain from introducing any non-mandatory changes to 2.10.x branch.

Review by @retronym