stage2: implement argument passing and returning in LLVM backend

Furthermore add the Not instruction.

The following now works:
```
export fn _start() noreturn {
    var x: bool = true;
    var other: bool = foo(x);
    exit();
}

fn foo(cond: bool) bool {
    return !cond;
}

fn exit() noreturn {
    unreachable;
}
```
da545d6a31Timon Kruiper committed on 1/3/2021, 4:23:30 PMparent47a4d43
2 files changedLine totals unavailable