contraMap and andThen on TypedSink/TypedSource

closes #884 
closes #885 
typedSource has no map, it would be via the implicit conversion to a TypedPipe to get it. I think not using map is to avoid being ambiguous. 

The main reason not to map is that you can still have it be a TypedSource and keep it as that type.