Split blockFunctionCall, add binary addition with numbers.

Split blockFunctionCall into blockFunctionCall and statementFunctionCall. The latter is placed after expression in the grammar, so a binary addition or subtraction (a + b, a - b) is not read as a function call with a unary operator (and its corresponding value), which would be the same as a() +b or a() -b. The favorisation of an expression now leads to a scenario where one has to do the following, if a function call is desired: You have to do a() -b, as a (-b) would be interpreted as -b being an argument!

Add binary addition for numbers.
Add test.Arithmetic to test the addition of numbers (and future arithmetic operations).
Refactor CoercionHelper to be able to get the target type of two expressions before compiling any node (Previously, this was closely tied together). This has to be done, because we need to set the type for a BinaryAdditionExpression before compile() is called.