doc: update many bash examples that used old-style flags.

some of these had become lies;
some of these still work, but now seem strange

Reviewed at https://rbcommons.com/s/twitter/r/1377/
Change certain core configs into registered options.

These are options like pants_workdir, whose values can be interpolated
into pants.ini to create values for other options. So we treat them
specially: We refer to them as "bootstrap options" and we determine their
values in an early pass before getting the values for all the other options.

This allows, e.g., overriding --pants-workdir on the cmd line, like any other
option, but still having %(pants_workdir)s interpolations in config files
work as expected.

Testing Done:
CI passed.

Reviewed at https://rbcommons.com/s/twitter/r/1373/
Minor docs fix: ./pants.d -> .pants.d

Fix path in the http://pantsbuild.github.io/tshoot.html page: ./pants.d  -> .pants.d

Testing Done:
./build-support/bin/publish_docs.sh -d tmp -o; verified the fix.

Reviewed at https://rbcommons.com/s/twitter/r/1387/
Make Pants goal run for Python exit with error code 1 if the python
program exits non-zero (as pants goal run does for java).

Testing Done:
Ran new tests.

Reviewed at https://rbcommons.com/s/twitter/r/1374/
Fix .proto files with unicode characters in the comments. (Problem found in '_same_contents')

Testing Done:
Updated unit tests, added a testproject example.

I tried naming the .proto file with a utf-8 character and it failed miserably. Fortunately I don't have that case, so I didn't try to fix it.

Bugs closed: 792

Reviewed at https://rbcommons.com/s/twitter/r/1330/
Remove execute_on_subproc and background subproc pool

Turns out we didn't get the parallelism we wanted with threads making blocking calls to subprocesses.

Re-using the subproc_map that is used in cache reads, and sending the whole call as a single piece of Work,
gets parallel compression and uploads, though at the expense of slightly less granular reporting. It also
turns out that separate process pools for aren't that useful, and slows down startup/shutdown.
Make all access to Context's lock via helpers

`context._lock` should be an implementation detail with callers only concerned with acquire_lock and release_lock.

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

Bugs closed: 818

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