separate lifetime of trigger subscription
port many more tests for take and take_until
simplified and fixed a bug in take_until