False positive specs + some other things up for discussion

Heya, I'm using wiretap in a new app build (hence why so many PR's!)

First thing - I realized that `reduce()` wasn't actually keeping a memo
properly (see spec I added)

Second - there are some false positive specs because `@reduced` or `@mapped`
is never reset before each test, after resetting them there are a couple of failed
specs regarding the use of non-callbacky values for `WiretapArray`. I propose that
we store these values somewhere and trigger with them whenever new listeners get added

Third - I didn't think that it made sense to re-trigger every stream in a set whenever
a single stream changes for a `WiretapArray::reduce()` since the reduce block can only deal with a single
value at a time, it's implied that it merges multiple streams into one. So I added the ability
to pass an index into `trigger_changed(*values, index)`, now `WiretapChild`'s can decide independently
how they want to deal with the change values (either reducing or mapping)