small tweaks in built-in funcs
first custom macro written in revo's native itself: when
adding built-in functions

* not
* or
* and
* [bugfix] when
* unless
* !=
adding comparison operators

* <  (BF)
* <= (UF)
* >  (UF)
* >= (UF)

About the notation:
      * BF: built-in function
      * UF: user(custom) function
      * BM: built-in macro
      * UM: user(custom) macro
adding list functions

* map      (BF)
* for-each (BF)
enhanced `map` & `each` function & bug fixes

now map can take multiple lists.

bug fixes:
    * `BuiltInFunctions#call` doesn't work
    * empty parametered function won't be called
    * wrong manner requiring `scanner_rules` in `scanner`

new features:
    * new `SExpr::{construct_list,construt_pair}` methods to creat a
      sexpr styled list/pair.
`let*` function and bug fix for `let`

new built-in function:
* `let*` (BM)

Difference between `let` & `let*`:

(define x 20)

(let ((x 1)
      (y x))
  (diplay (+ x y)))  ; display 21

(let* ((x 1)
       (y x))
  (display (+ x y))) ; display 2
`fluid-let` support

new built-in function:
* fluid-let [BM]

ref: teach-your-self-a-scheme-in-fixnum-days -> chap5#fluid-let