add IO primitives, new expected args

adds io primitives for apply, open-input-file, open-output-file, close-input-port, close-output-port, read, write, read-contents, and read-all.

also changes the default arguments to accept a file name containing a program rather than a string containing a program. no arguments still launches a repl.