Revert conversion of thrift_linter.py to new options format, left in place TODO about precedence of override in target

Testing Done:
PANTS_DEV=1 ./pants goal test tests/python/pants_test/tasks:thrift_linter_integration   passes again

Bugs closed: 727

Reviewed at https://rbcommons.com/s/twitter/r/1223/
Read arguments for thrift-linter from pants.ini.

This allows changing linter options without changing pants.

Testing Done:
./build-support/bin/ci.sh

PANTS_DEV=1 ./pants goal thrift-linter testprojects/src/thrift/com/pants/testproject:thrift-java

Bugs closed: 719

Reviewed at https://rbcommons.com/s/twitter/r/1215/
Add support for updating the environment from prep_commands.

Reviewed at https://rbcommons.com/s/twitter/r/1222/
Include traceback with failures (even without fail-fast).

Testing Done:
Ran tests.

Reviewed at https://rbcommons.com/s/twitter/r/1226/
Fix a bug where all OptionValue objects had the same underlying forwardings.

This wasn't seen earlier because in practice all tasks migrated so far had
disjoint option names.

This was exposed when I migrated two unrelated tasks that happened to have
an identically named option (--skip).

Testing Done:
CI passed.

Verified that this fixes the name collision issue that triggered its discovery in the first place.

Reviewed at https://rbcommons.com/s/twitter/r/1229/