convert and move about 1/2 of our docs from .rst to .md

This change starts converting our docs from sphinx-powered-rst to Pants-enhanced-md, moving files to some different directories:

src/docs/*.md  <= language-agnostic Pants-user docs

examples/src/java/com/pants/examples/*.md  <= Pants-with-Java docs

examples/src/python/example/*.md  <= Pants-with-py docs

src/python/pants/docs  <= good place for pants-dev docs

Keeping foolang docs with examples/src/foolang feels right; if we change the examples, we probably want to change the docs, too. Less-certain about where language-agnostic docs go.

Testing Done:
eyeball-compare pages gen'd from .rst, .md

Reviewed at https://rbcommons.com/s/twitter/r/1176/
'goal sitegen' tweaks inspired by eyeballing more Pants doc pages

Don't insert pilcrow anchor in the heading; instead, lay it nearby with a table. Otherwise, it looks funny if the line breaks right there.

Add a "Generated by publish_docs dist/markdown/html/README.html 2014-10-17T11\:16:07.253750" so that folks who are looking at a doc from two years ago have an inkling of the danger. And/or if they want to fix a mistake, they have a clue where the content came from.

Widened margin around the page-level table of contents.

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

Reviewed at https://rbcommons.com/s/twitter/r/1178/
Make CacheKey hash and pickle friendly

Don't need payloads on cache_keys, so removing them makes them pickle-friendly.

Testing Done:
tests/python/pants_test/cache::

Passed: https://travis-ci.org/pantsbuild/pants/builds/38538962

Reviewed at https://rbcommons.com/s/twitter/r/986/
Add test for CombinedArtifactCache's behavior

Makes sure that remote + local correctly "backfills"
local when fetching from remote.

This is just documenting/asserting current behavior.

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

Reviewed at https://rbcommons.com/s/twitter/r/982/
Add support for running a command before tests.

This depends on https://rbcommons.com/s/twitter/r/1177/

Testing Done:
Ran new test.

Reviewed at https://rbcommons.com/s/twitter/r/1179/
Fix problem parsing stuff like options: --compile-java-args='-target 7 -source 7' in pants.rc files

Testing Done:
Ran new tests

Reviewed at https://rbcommons.com/s/twitter/r/1192/
Migrate all JvmTasks to use the new options system.

The common --jvm-options, --args, --debug and --confs flags now
live in the base class, but this required migrating all the
relevant tasks at once, hence the scope of this change.

This also gets rid of manual flag-to-config fallback, as the new
options system does this automatically. However this required some
changes to section and key names in pants.ini. I'm documenting
these changes in a spreadsheet, for smooth config migration in
pants install bases.

This required breaking a couple of inconsistently named flags, e.g.,
--benchmark-caliper-args is now just --benchmark-args.

Testing Done:
CI passed.

Manually tested that new flags and config settings work.

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