Represents a class of cancelables that can hold
an internal reference to another cancelable (and thus
has to support the assignment operator).
Examples are the MultiAssignmentCancelable and the
On assignment, if this cancelable is already
canceled, then no assignment should happen and the update
reference should be canceled as well.
Updates the internal reference of this assignable cancelable
to the given value.
If this cancelable is already canceled, then value is
going to be canceled on assignment as well.
Cancels the unit of work represented by this reference.
Guaranteed idempotency - calling it multiple times should have the
same side-effect as calling it only once. Implementations
of this method should also be thread-safe.