Package shell is the entry point for the terminal interface of Elvish.
CleanupRuntime cleans up the runtime.
InitRuntime initializes the runtime, and returns an Evaler and the path of the data directory. The caller should call CleanupRuntime when the Evaler is no longer needed.
Shell keeps flags to the shell.
Main runs Elvish using the default terminal interface. It blocks until Elvish quits, and returns the exit code.