=str: #15802: TickSource cancellable

 - TickPublisher is now single Subscriber only, the TickSource is reusable (creates fresh publishers)
- also, fixing intermediate materialization for Source.concat
ConcatSource was the same, but materialized it to publisher first, which would break the resulting MaterializedMap. This should fix that.