contraMap and andThen on TypedSink/TypedSource

closes #884 
closes #885 
I don't think an appeal to Haskell is very useful; in general Scalding has tried to keep consistent with the Scala naming conventions, not Haskell's. I think `butFirst` (while a bit silly) is in keeping with `andThen`, so I think it's a better name in this context. But I can't object very strongly to having both.