Add sample()

Samples a signal at times provided by another stream.

Still needs:

* [ ] API review
* [ ] Unit tests
* [ ] Docs