Normalize the names of all toplevels and add newlines where needed.

Rename all chapter*-interpreter -> chapter*-scheme and ensure that the *
matches the file name where the function is defined, so that
chapter3-scheme -> chapter3f-scheme, etc.

This makes all the toplevels conform to the same naming pattern, rather
than having, e.g., chapter2-scheme but also chapter7a-interpreter.

Also, make sure a newline is printed before the next prompt in all
toplevels.
Rename scheme -> scheme6f and test-scheme -> test-scheme6f.
Update ${TMP_ALL_TESTS} to tests from chapters 7 and 8.
Compile-file takes the output file as an argument.
Caller must specify file extensions when calling compile-file.
Output files go in the ./o directory.
Require file exts for build-application, install-object-file!, and load.
Delete the tmp.si directory.

All the files in ./tmp.si were duplicates of files in ./si. Since all
output files are now written to the ./o directory, we can use the files
in ./si as input files and get rid of ./tmp.si.
Make clean deletes all files in the ./o directory.
The tags target should regenerate the TAGS file if it already exists.