Define destructive reverse function.

Constructing a list in a reverse order and then reverse it is easier
than constructing a list in a proper order from the beginning.
Support rest parameter.

Minilisp is now able to handle a function with a rest parameter, e.g.
(lambda (x . y) ...).
Remove list and add cons instead.
Add car and cdr functions.
Rename list_length -> length.
Allow punctuations in symbol.
Increase heap size to 64KB.
Fix bug that debug message is printed to stdout.