Change parser to allow abbreviations of the form Lxy.(x y) for Lx.Ly.(x y)
Fix exception when quitting the program with Ctrl-d
Add explicit to_string function, print nested abstractions with one lambda symbol (Lxyz.M instead of Lx.Ly.Lz.M)
Greatly reduce number of redundant parentheses that are added to the output
Print ((x y) z) as (x y z)