lisp/emacs-lisp/eieio*.el: Rewrite our generics on top of cl-generic