Renamed SchemeScanner2, and added new constructors to the parser and scanner.

Since reading from a file is more memory-efficient than from reading
from a string, I re-added the file constructors in case we ever need
them, but still kept the older string constructors.  I also left the
executor unmodified to reduce errors with the current code.