Check calls against function signature.

pyflakes is able to detect some error function calls:
  - too many / too few arguments;
  - unexpected keyword argument;
  - multiple values for single argument;
  - unspecified keyword-only argument (Python 3).
fix Checker.iterVisibleScopes + simplify code

Checker.iterVisibleScopes properly handles generator scopes.
avoid "unused import" errors in __init__.py files
Include the column in syntax errors

Fixes LP #1250684.
Fix the ^ for syntax errors

It now agrees with the traceback given by Python.

Fixes LP #1249873.
Handle syntax error offset being None
Fix all test failures related to changes to syntax error reporting
Make tests pass in Python 2
Merge in changes
Merge branch 'ignore_unused_import_in_init' of git://github.com/megies/pyflakes into develop
Merge in changes from @dim-an