Stream combinators

Adds `take`, `drop`, and `map`. Others to follow.

Resolves #29.