Rewrite elisp parser to use builtin funcs

More accurate and much faster.