contraMap and andThen on TypedSink/TypedSource

closes #884 
closes #885 
Haskell is only relevant because we had to have some name. I am happy to add butFirst here, and would have been happy to make the one on TupleConverter butFirst, but I don't think it is worth a (minor) breaking change to change that one.

Two options: (butFirst and contraMap here) or (butFirst on TypedSource and keeping contraMap on TupleConverter)

Opinions?