Created function object that can wrap blocks, local functions and their arguments and code.
Added arguments to lambda functions.
Optimised code generated for arguments

- Use CompileValueInNewRegister instead of CompileValue and manually copying R0 to new register.