contrib/cfengine.el: use a fallback syntax and cache results; general improvements