Added optimisation pass.

Added basic optimisation pass for LLVM and preparation for calling top
level functions and evaluating them in the REPL.