Because:
* Layout and architecture of the code was not immediately obvious nor
the rationale for some of the design.
This commit:
* Aims to fully explain the code, its architecture, and how the
components are structured.
Closes#744
Because:
* Only the subscription state and delete events were propagated.
* RPs need to know about password reset/change and profile updates.
This commit:
* Sends password change and profile change events to RPs.
Closes#3481