A lot of work, implemented most statements in LLVM code and added a test program that works.

Will write tests for this in future commits