add CONSTANT_TABLE to store strings. Changed eq?

1. so constant strings(symbols) will only be saved once.
2. changed eq? function, this function will check whether two objects
are the same
(def x 'a) (def y 'a) (eq? x y) = > true, because x y both point to
same 'a
but (eq? 'a (string-append "" "a")) => () because string-append creates
new "a" object