Add --repl [package] command line option

Checks the package, then starts a REPL using the main module listed in
the package description. If no main module is given, the REPL is not
started.

(This means library packages will need a main module listed --- it has
no other effect that to be the 'home' file for the REPL).
Added Functor, Applicative, and Monad Provider instances
Merge pull request #834 from david-christiansen/semantic-pprint

Automatically detect console width + fix pretty-printing of no-argument Nil constructors
Merge pull request #836 from trillioneyes/monad-providers

Added Functor, Applicative, and Monad Provider instances
Fix display of CantConvert