don't insist on @manual.builddict; rm it from many places

@manual.builddict is mostly redundant now. So clean clean clean.

Change the BUILD-Dictionary-building logic: document registered things; not just those registered things that were tagged @manual.builddict.

added some docstrings
lambda x : foo x loses foo's docstring, so add a helper func to carry that along

Motivation:

A couple of refactorings ago, we had lots of symbols def'd in BUILD files we didn't want folks to use. "Yeah, you _could_ use JvmTarget for that, but please use java_library instead." We used @manual.builddict to carefully mark those things we wanted to show up in the BUILD Dictionary.

In these enlightened days, we carefully craft our register.py files to specify the symbols we want. Thus, @manual.builddict is mostly a duplication of effort. (It's still useful for methods: most methods shouldn't be used in BUILD files. But a few of them are still around. So, even with this change, we mark those with @manual.builddict)

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

publish_docs.sh and eyeballing

Reviewed at https://rbcommons.com/s/twitter/r/703/
Copy a dirutil unittest from commons.
Got ivy to map in javadoc and source jars for pants goal idea.

This involved a fair amount of finagling with conf variables spread across ivy_* and ide files,
and some changes to the ivy mustache. The mechanism by which confs are currently passed around
does not seem very robust. The whole system would probably benefit from some refactoring to
abstract away ivy's inner workings and streamline generic mapping settings; it would be nice to
have an abstract interface for mapping jar files. This could  also make it easier to deal with
failing downloads, parallelization, or using a different jar mapping tool, but all that can
wait for an entirely different review.

Also cleaned up some style issues that got missed in the last patch for the idea goal.