Prototype-based Emacs Lisp object system