Move Functor evidence out of Free/Cofree data, ask for it on operations instead

As with the monad transformer stack and other data types with higher-kinded type parameters that need evidence for some operations.  As discussed with @larsrh.

@runarorama, what do you think?