Trying to get the NameFinder to use only NameParts.
Fix all the normal issues with the NameFinder change. Now goto...
Fix some goto issues.
Fix remaining usage issues.
Even params should be NameParts as a Definition input.
Removed an old test from the days where it was allowed to add Keywords to Definitions.
NamePart migration of Definition is complete. Now Completion.
Completion now always takes a NamePart as input.
Use FakeName instead of a custom KeywordName.
Completion now also uses only NameParts as its _definition attribute.
Big refactoring: BaseDefinition._definnition changes to BaseDefinition._name, because it's a NamePart now.

This also includes changes to tests and some simplifications like deleting the old name logic of Definition.
Remove code that is not needed anymore, because the Definition/Completion import is now standardized (to NamePart).
Remove BaseDefinition._start_pos.
Replace BaseDefinition._name.get_definition() calls with BaseDefinition._definition.
Apply evaluate.representation wrappers already before they go out into the goto world.
Temporarily disable a test for goto on nested imports. The positions are currently wrong. But this is a known issue.