Add a helper function to list all name parts of a given module.
Add a temporary api._names, to make it possible to annotate a full script with types.
Additional helper methods, to find all the statement elements that are needed.
Added tests for statement_elements_in_statement
Make statement_elements_in_statement work with ListComprehensions, Lambdas and 'except foo as' expressions
Fix issues with unreachable flows.

This benefits static analysis as well as autocompletion: Unreachable code (things like code within 'if 0:') should still be resolveable.
Clarify inner workings of Evaluator.goto
Script._goto improvements and documentation.
Remove code that is not used anymore from Script._goto
By trying to get rid of search_name in usages, we had to fix an issue with imports:
If used like 'follow(is_goto)', it could return a ModuleWrapper instead of a Name, which is what we actually want.
CompiledObject.name returns a Name now, not a string. This is more consistent with the Jedi design and doesn't lead to bugs while ducktyping.
Fix remaining issues with CompiledName.name change.
Remove search_name and search_name_part from goto returns.

The search_name can be retrieved by checking definitions for it. Definitions should always be names or even better name_parts in case of goto. Therefore we can just get it there.
Script.goto_assignments now always needs a call_path. Otherwise it raises a NotFoundError.

This change makes Jedi's behavior more consistent.
Definitions should not be followed in Evaluator.goto.
Class inheritance definitions shouldn't be params. It's just statements.
Forgot to add the the params in the case of a class in the previous commit.
Rewrote sys_path._paths_from_assignment.
precedence._is_string -> precedence.is_string
Updated helpers.deep_ast_copy. Now the function copies statements in a better way.

Previously statement attributes where scanned like every other objects. Now two statements get priority: _assignment_details and _expression_list. This is necessary if we want to switch towards proper name parents (A Call would be the parent of a name, not a Statement)