Create a Var from an initial value.
Create a Var from an initial value and a register function .
The register function is called as soon as this Var becomes active.
The returned Cancelable is called when the Var becomes inactive.
Registration & cancellation might append as many time as the Var goes
active/inactive. This mechanism is what prevents flatMap from leaking
memory: make sure that everything created in the register is canceled.