Add two more kinds of duals

The identifiers L and R refer to which ^op is removed/inverted.
Add generalized version of identity functor

Necessary to get between two identical functor categories which use
different instances of funext.
Functorialize yoneda
Clean up and unify Yoneda a lot

Unfortunately, it seems that the [Defined] at the end runs forever.