Refactor timeslice to use a more sensible approach

It now represents a timeslice explicitly as start and end signal values.
Port build tests. Simplify and fix cycle()
Improve delay and timeslice dispose
Port filter and slice tests, fix takeWhile