Added RelatedManager.set() and made descriptors' __set__ use it.

**WIP not ready for commit!**