Make environment noncopyable
Move `get_global_environment` to its proper unit
Make `environment` copyable again

`boost::apply_visitor` cannot work with noncopyable, movable types.
Introduce more error types
Recover after error and continue REPL
Add error handling for empty list
Pretty-print boolean values
Merge branches 'errors' and 'output' into develop