Add support for MACROs with variable arguments

Example:

  (+ MACRO ARGS (ADD . ARGS))

  (+ 1 2 3 4 5) // => Equivalent to (ADD 1 2 3 4 5)