Much refactoring. This commit includes changes upto the desurgaring phase.
Refactored macro defrule and rewrite interface.
Added default :else clause in defrule macro.
abstract-ast now uses the rewrite interface
Fixed / removed obsolete tests
Generating HTML tokens now uses defrule.
Refactoring complete! The final step was restoring function calling. This time we use n-ary functions.