Modify language grammar to accept keyword arguments in method calls

With current implementation obj::method(x, some=2) is translated to

obj.method.__keyargs({some = 2}, obj, x)

It works but it does violate the Lua semantic which states that for method
calls the receiver ("obj" in the example) is evaluated only once.