contraMap and andThen on TypedSink/TypedSource

closes #884 
closes #885 
What's the practical difference between using this and just using `map`?