Stream combinators

Adds `take`, `drop`, and `map`. Others to follow in other PRs, probably.

Resolves #29.