make TypedPipe, KeyedList and Grouped covariant in T

This patch upgrades TypedPipe, KeyedList and Grouped to be covariant in T, further aligning them with scala's List and Map implementations (which are typed List[+T] and Map[K,+V]).

It was necessary to modify the signatures of a number of reducer ops in order for them to apply to a generic supertype of T.  Due to the sensitive nature of these changes, we should consider this patch for the scalding 0.9 release.