Make HotSignal.take terminate ASAP

Before this change, it was terminating on the value _after_ the count.
This makes it terminate when the count is reached.
Capture ObservableProperty in buffer() signal

Otherwise, it can deallocate too early, now that take() disposes of
itself.