clarifying the concept of sexprs and pairs

According to the Wikipedia, an s-expression is classically defined[1]
inductively as
  1. an atom, or
  2. an expression of the form (x . y) where x and y are
     s-expressions.

That's what's changed in the code.

These are defined basically in revo:
  * An atom is an atom, represented by a s-expr that holds a value and
    points to nothing(nil).
  * A list is a pair that ends(rightest) with 'EndOfList' element(s-expr).
  * A pair is a consist of two s-exprs.

Therefore:
  `(1 2 3) == (cons 1 (cons 2 (cons 3 EOL)))`

the right part could be shortenedly written as: `(1 . (2 . ( 3. EOL)))`

In this commitment, the grammars of those parts has been well
organized and the `to_s` function of `SExpr` class has be completely
optimizedly rewritten.
optimized grammar rules for literals
involving evaluations