Restructure the way we get self arguments (probably reduces executions of object).
Speedup object lookup even further in classes.
refactor py_base to py__bases__, because that's the general naming schema
Tests for conditions in descriptors.
Implement the descriptor protocoll properly for instances.
Fix an issue with partial keyword inputs.
Remove code in the parser that didn't make sense.
fast_parent_copy should also change the parent of NameParts.
Fix fast_parent_copy. The caching is now more solid than before (and doesn't produce weird side effects. This also solves an issue with Lambdas. However, by fixing all of this we have broken some other things.
small debug change
Use a LazyName for module attributes, they should only be generated if needed.
Use the "wrong" parents again for next/execution in StatementElement. This is important for call_signature lookups. We might still be able to change this somewhere in time.
fix tests. Operators should not equal to other operators with a different position. or even parent.
first step in refactoring call_signature_array_for_pos, use original_call as a param.
refactor search_call_signatures. Now we don't need to set Call.next.parent in a strange way anymore and the whole thing seems to be more logical.
Simplify goto_definition in case it done on a function.