Generalize `scan` from EventStream to Property/EventStream.

This lets us accumulate changes over a property's value. A common use case is to know what the current and previous values of a given property are to facilitate animations between states.

The semantics of this seem pretty clear to me. The only conceptually fuzzy bit is
not having the initial accumulator value in the stream; since a Property has an initial value,
and the semantics of a Property imply that previous values aren't so important, it seems we should ignore it.