commute and commuteMap

Been thinking this over for a while (see #441). The utility of `commute` in Array-of-Array scenarios is not obvious--but `commute` shines in situations where you want to convert a list of Functors (Maybe, Either, even Promise?, etc.) to a Functor of a list. 

i don't think so--it'a a function from `a` to a function from `b` to `c` (i think...)