Fix some error reporting issues.

1. Let the new options system throw exceptions to the top in the
   usual way.  We already have error handling there.

2. Ensure that if we throw an exception to the top we report our
   status as FAILURE, not SUCCESS.

Reviewed at https://rbcommons.com/s/twitter/r/1113/
Memoize fingerprints by the FPStrategy hash

* Force __hash__ and __eq__ to be defined for FingerprintStrategy
  subclasses.
* Fix implementations of Target.{transitive_,}fingerprint and existing
  FingerprintStrategy subclasses.

Testing Done:
CI is clean at https://travis-ci.org/pantsbuild/pants/builds/37204281

Reviewed at https://rbcommons.com/s/twitter/r/1119/
get 'goal targets' using similar codepath to 'goal builddict'

'goal targets' and the thing that builds build_dictionary.html used different code. At any given time, one or the other worked OK, but never both. Most recently, 'goal targets' doesn't show "inherited" docstrings :-( Also, if you wanted CLI help for a non-target thing like 'artifact', you got none :-(

This change...
moves builddict's reflection-y code out to backend/core/tasks/reflect.py . Tweaks 'goal targets' to get its info from reflect.py. Yay, one less code path. Has the nice side effect of pulling in help for 'artifact', not a target type but useful.

Testing Done:
started up https://travis-ci.org/pantsbuild/pants/builds/37021417

Bugs closed: 584

Reviewed at https://rbcommons.com/s/twitter/r/1112/
Merge remote-tracking branch 'pantsbuild/master'
Add missing coverage deps

Testing Done:
CI is green at https://travis-ci.org/pantsbuild/pants/builds/37057783

Reviewed at https://rbcommons.com/s/twitter/r/1117/
Memoize Address.__hash__ computation.

I noticed during profiling that it is a major hotspot and a very easy
change.  This is unsurprising: addresses are dictionary keys for many of
the fundamental structures in pants.

Also hoist spec_path and target_name into private attributes exposed by properties.

Testing Done:
Travis is being flakey.  ci.sh passed and a previous run of travis was green.

Reviewed at https://rbcommons.com/s/twitter/r/1118/
Read values for a handful of options in the new way.

Provides an example for mass migration.

Also fixes an issue where we weren't "descoping" old-style options
in all the places they could appear.

Reviewed in https://rbcommons.com/s/twitter/r/1114/
sitegen task, create site with better navigation.

Still not everything we want from a basic site generator,
but some steps in the right direction:

A site-wide table of contents, an outline in which the "nodes" are pages.

For each page,
+ page-wide table of contents, a list of headings.
+ "breadcrumbs" up top, that show how/if this page fits into outline

Testing Done:
added some tests. mostly "normal" cases, didn't try to dream up corner cases.

added some non-ASCII text to some test data, inspired by recent Unicode-mangling stories on the mailing list.

started https://travis-ci.org/pantsbuild/pants/builds/36613009

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