Reorganize main()
Fix symbol handling.

Symbols are not variables. Symbols should not be shadowed by variables
introduced by define or lambda. For the same name, the same symbol must be
returned from intern().
Allocate correct size of memory for the special type
Remove add_var and rename add_var_int -> add_variable.
Rename define_consts -> define_constants
Remove String because it's dead code.

String has never been really fully implemented in the Mini Lisp. That's
not accessible from user.
Use appropriate types
Fix indentation
Simplify code.
Fix possible memory bug