Implement Scheme macros and syntax definitions

- Scheme macros (lambda-syntax, set!-syntax, begin-syntax, let-syntax,
  let*-syntax, letrec-syntax, letrec*-syntax, syntax-rules,
  syntax-error)
- Scheme syntax definitions (define-syntax)