Sync to latest upstream:
- Generalize yield statement function type
- Avoid crash on outrageous non-ASCII characters.
- No longer need to pin flake8 version.
- Find partial types anywhere in the stack. (removes local patch)
- Update license year range to 2016
- If a base class is Any, don't get default constructor signature from object.
- Simplify union types when determining type sameness
- Generator fixup
- Add line number to "__init__ must return None" error
- Fix empty yield error in unannotated functions
- Fix "except (E1, E2):" parsing in PY2.
- Don't crash if no source files were found in a directory or package.
- Fail without traceback when duplicate module name encountered.
- Fix subtype check between generic class and Callable
- Avoid crash on "x in y" where y has a partial type.
- Fix type inference issue with dict(x=[], y=[])
- Fix #1160 (bogus error message)
- Fix function definition within for statement