Fixed #6707 -- Added RelatedManager.set() and made descriptors' __set__ use it.

**WIP not ready for commit!**
TODO: warn about possible race conditions and atomicity.