define defun-caching macro similar to defun but produced function caches its output
another attempt at making eproj.el faster by using many caches and some project-creation optimizatinos