All the expressions and basically anything that needs to be printed out into
the REPL as a result of evaluation has to implement this trait.
It differs from the `std::fmt::Display` trait in the way that the runtime
instance is available to this function.
Since we're decided to create a Serene interpreter to bootstrap
the self hosted compiler, I moved the current implementation to
bootstrap directory and setup a very basic REPL.