Macro support

Now revo supports built-in macro definition.

Use function `def_macro` in Revo::BuiltInFunctions to define a macro.

The difference between a macro and a function is that a macro won't evaluate the argument list.

And a fix of list/pair display problem, since `(1 2 . (3 4))` is completely same as `(1 2 3 . 4)` so there's no need to handle the condition that `cdr.next.nil?` is also end of lists.