Refactor _subscribers into a singly linked list

This reduces memory usage for the overwhelmingly common case of 1
subscriber, while still optimizing searching and insertion for other
cases.
Remove -didSubscribeWithDisposable: for passthrough

It doesn't actually do anything.
Optimize disposable usage in base signal operators