Avoid throwing in ApacheThriftGen.__init__

Testing Done:
https://travis-ci.org/pantsbuild/pants/builds/43046341

Bugs closed: 842

Reviewed at https://rbcommons.com/s/twitter/r/1428/
Support option reads via indexing.

This will support tasks with table-driven logic.

Testing Done:
$ pants.dev goal test tests/python/pants_test/option

CI went green here: https://travis-ci.org/pantsbuild/pants/builds/43132907

Bugs closed: 846

Reviewed at https://rbcommons.com/s/twitter/r/1435/
Properly detect existence of a symlink.

os.path.exists() returns False for broken symlinks.

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