Add repl history.

Uses the file $HOME/.elm/elm-repl_history.
Make history file location more cross-platform friendly.
Merge pull request #16 from maxsnew/history

Add repl history.
Exit on EOF (Ctrl-D), interrupt on Ctrl-C.

Changes behavior of EOF (Ctrl-D) and Ctrl-C.

On EOF (Ctrl-D in the repl), exits the repl.

On Ctrl-C, interrupts the program in execution.
This means that Ctrl-C can be used to interrupt a long-running
computation (tested with a js `while (true) ;` on my machine).
Make eof non-error exit code
Merge pull request #17 from maxsnew/eof

Exit on EOF (Ctrl-D), interrupt on Ctrl-C.
Fix #12

Larger refactor may happen later
Switch to using cmdargs for parsing flags
Change name of quit to exit
Get rid of root changing for now

I want to do a release soon and I don’t trust this feature yet.
Link to general usage instructions
Simplify command parsing code, remove commented out code
Simplify parsing code and change help messages a bit
Make command handler a bit easier to read
Add type annotations
recommend :exit for exiting
Reduce duplication in `empty` function
Simplify storage of flags and user facing API for removing them
Cosmetic: mess with runCommand functuon
reorder imports