The test modules were not under pylint jurisdiction,
and actual bugs have been found in tests that would
have been prevented had we run static analysis on
the test code as we do on the core modules.
This is the first step to enable pylint on tests.
Due to numerous warnings since the code is not ready
and needs refactoring, a new `.pylintrc`
specific to tests is added that suppresses a number
of valid warnings. The goal is stepwise elimination
of each class of warning while refactoring the code
such that it will not emit any warnings in future
commits, always keeping the sanity checks passing
and keeping the disruption minimal.
Pylint is only enabled for "grpcio/grpc" package,
and various specific checks that currently fail are disabled,
each with a respective TODO item in the .pylintrc file.
The source code is moved from src/python to
src/python/src. A setup.py is added at
src/python. The build_python.sh and
run_python.sh scripts are updated to build
and run the Python tests by building a
package and installing it in the developer's
Python 2.7 virtual environment.