Added tests for the higher order functions.
Now read will throw an error if it reaches the end of a file.

This is mainly for read-list, which previously would enter an infinite
loop if a call to eval-string with mismatched parens was made. Now an
error will be signaled instead.