Rather than repeat this code, we could:

1. Go back to the previous name for the public method: `-rac_addObserver:forKeyPath:willChangeBlock:didChangeBlock:`
1. In that public method, create the `serializationLock` and replace `willChangeBlock` and `didChangeBlock` with versions that will automatically lock and unlock it.
1. Move the bulk of the implementation to a static function, which does not need to know about the existence of `serializationLock`.