Reworked evaluation procedure. This resolves issue #2.

eval.Checker is now replaced by eval.Compiler which compiles the AST into a
closure operating on the Evaluator. Huge commit, sorry.
eval: Fix PATH not being recognized
eval: Value.{String Repr} no longer takes *Evaluator as arg