Generalized ActivitySliding
Changed window representation; materialize windows only on demand.
Fixed String/Option[String] mismatch.
Only keep summaries for activity windows.

Merge branch 'feature/lazy-window-materialize', which summarizes each
activity window and recomputes sample sequences on demand as needed.
Since the vast, vast majority of activity windows are never used after
they are summarized, this results in dramatically lowered memory pressure
and huge (3x) performance improvements.