Drop volatile in favor of failing fast if not subscribed from UI thread
Only release references in unsubscribe

We decided it's better to leave it to the caller when it's appropriate to release, cf. #1
Add guards around log statements
Remove isFinishing check when calling back to activities

We decided it's sufficient for the callback to be safe as long as the caller unsubscribes in onDestroy