Better function call matching

As discussed in #16, I finally worked on the function call matching that I already thought of in #8.

Following is a snippet that I used for testing:
```py
list(map(str, range(100)))
[str(i) for i in range(100)]

super(arg1=1)(arg2=2)
list abs, map
some.None NotImplemented

print (file=None) print . __class__
print keyword print __init__

__init__ . something()
```

![2014-09-03_05 37 41](https://cloud.githubusercontent.com/assets/931051/4129236/b5f1fc36-331b-11e4-93e2-79e82c5b4229.png)


Closes #16.

PS: This is unrelated, but there are a couple of `include: $self` occurences that are technically incorrect because in most of these cases only an expression is allowed. However, the snytax def itself is not grouped into statement vs expression, so the grouping would be a required step for this (and would also add more structure).