add python checkstyle tool to science

code lives in {src,tests}/python/twitter/checkstyle
checkstyle plugins live in src/python/twitter/checkstyle/plugins and are dynamically loaded (but can be toggled with the -p option)

there are four binary targets provided:
  src/python/twitter/checkstyle:check => checker with all checks linked in
  src/python/twitter/checkstyle:check_pep8 => checker with only pep8 checks linked in
  src/python/twitter/checkstyle:check_pyflakes => checker with only pyflakes checks linked in
  src/python/twitter/checkstyle:check_twitter => checker with only twitter styleguide-specific checks linked in

running:

dist/check.pex [-p PLUGIN1 [-p PLUGIN2] ...]
               [--diff=branch]
               [-s SEVERITY]
               [--strict]
               glob1 glob2 ...

  -p allows you to toggle individual auto-loaded plugins, e.g. ExceptStatements.  if -p unspecified, all are selected.
  if --diff=branch is supplied, only run checkstyle against a diff (e.g. i've been testing this code by running dist/check.pex --diff=master)  NOTE this disables glob checking.
  severity levels are COMMENT, WARNING, ERROR.  -s allows you to toggle the level at which we log nits.
  if --strict is supplied, it exits non-zero if you get any nit at WARNING or higher.
  if globs specified, zsh glob (you probably want to escape these if you're already in zsh)

RB_ID=151272

(sapling split of 73e80ba512c854135544624f2baa6d6fca4eaddf)
add more checkstyle test coverage, integrate issue taxonomy

RB_ID=152529

(sapling split of d5b887947f86a34d40c05616cb2816db64132b9d)
do not discourage single line exception classes in checkstyle

single line: pass and hierarchy checking coming in next diff

RB_ID=153609
NO-QUEUE=true

(sapling split of 088ee346232a2869e6bb698a2f75732be7f840d2)
Streamlines Python checkstyle output

RB_ID=156640
NO-QUEUE=true

(sapling split of 57a0c45cb78dd99691a903d0c9bcf648e06fa4d6)
Sets checkstyle diff branch to master if no args or branch are set

RB_ID=156749
NO-QUEUE=true

(sapling split of 71613a83c5dfcc7b2f405d69a221f3db655e51f5)
AWESOME-4695 Fix checkstyle when renaming python files

RB_ID=170611

(sapling split of 6c2832f74059eeed0313e9e9c184d4d16dfe8cb1)
rename src/python/twitter/mesos to src/python/twitter/aurora

rename src/python/twitter/mesos to src/python/twitter/aurora
 - change sandbox code
 - rename recipes
 - s/MesosClientAPI/AuroraClientAPI/
 - update thrift namespaces, straggling missed changes and entry_points
 - import reordering
 - search and replace for twitter/mesos to twitter/aurora
 - search and replace for twitter.mesos to twitter.aurora
 - rewrite BUILD files

RB_ID=175784

(sapling split of d882f27457be9f6918c4eda1d66c7e415af28eca)
Fix checkstyle errors for checkstyle.

RB_ID=195707

(sapling split of 19d8d682d5f4b6721aa26cc4fc592cc100d5f990)
No writes to remote artifact cache by default.
IvyResolve refactor and bootstrap phase

* Refactor IvyResolve primary into IvyUtils and Task.ivy_resolve
* Add a bootstrap phase, currently only with the Task BootstrapJvmTools
* Relax the has_sources requirement of VersionedTarget, so we can
invalidate and put JarDependencies into the artifact cache
* Allow workunit_factory as param to NailgunTask.runjava and
runjava_indivisible.  This is to allow them to be used anywhere one
might use their equivalent functions in binary_util.

Auditors: benjy
Move JavaCompile to new tool bootstrapper

Auditors: benjy

Conflicts:
	BUILD.tools
Move ScalaCompile over to new tool bootstrapping

Also refactor zinc_utils to access any necessary tool classpaths
lazily

Auditors: benjy
Move AntlrGen over to new tool bootstrapping

Auditors: benjy
Move BenchmarkRun to new tool bootstrapping

Auditors: Benjy
Move Checkstyle to new tool bootstrapping

Auditors: benjy
Move NailgunTask to new tools bootstrapping

Auditors: benjy
Move JUnit to new tools bootstrapping

Auditors: benjy
Move SpecsRun to new tools bootstrapping

Auditors: benjy
Small style tweaks (PEP8)

Auditors: benjy
Small fixes and comments related to bootstrap phase

Auditors: benjy