Fixup a hidden jar <-> publish dependency cycle.

This simplifies JarCreate letting it just create classfile jars and
moves the responsibility of creating source and doc jars to the
only user - JarPublish.

Testing Done:
./build-support/bin/ci.sh

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

Bugs closed: 335

Reviewed at https://rbcommons.com/s/twitter/r/660/
Fixup RoundManager scheduling for phases that depend on themselves.

Handle this case explicitly and add test coverage for the
RoundEngine.

This also adds proper cli phase de-duping and validation
that requested data products actually have a producer.

Testing Done:
$ PANTS_DEV=1 ./pants goal clean-all
$ PANTS_DEV=1 ./pants goal test {src,tests}/{java,scala,python}::

Bugs closed: 324

Reviewed at https://rbcommons.com/s/twitter/r/644/
Fix the '--bundle-dup-excludes' flag and add '--bundle-dup-max-dups'

Now the default output prints out how many more you get:

   Duplicate classes and/or resources detected in artifacts: (u'commons-beanutils-commons-beanutils-1.7.0.jar', u'commons-beanutils-commons-beanutils-core-1.8.0.jar')
                        org/apache/commons/beanutils/BeanAccessLanguageException.class
                        org/apache/commons/beanutils/converters/URLConverter.class
                        org/apache/commons/beanutils/locale/converters/IntegerLocaleConverter.class
                        org/apache/commons/beanutils/converters/CharacterArrayConverter.class
                        org/apache/commons/beanutils/MethodUtils.class
                        org/apache/commons/beanutils/converters/BooleanConverter.class
                        org/apache/commons/beanutils/converters/ClassConverter.class
                        org/apache/commons/beanutils/DynaBean.class
                        org/apache/commons/beanutils/converters/BooleanArrayConverter.class
                        org/apache/commons/beanutils/Converter.class
                        ... 123 more ...

Testing Done:
I've got a lot of duplicate classes on the classpath to sort out...

devpants goal bundle <target> --bundle-dup-max-dups=50 --bundle-dup-excludes=dependencies,license,notice,.DS_Store,notice.txt,cmdline.arg.info.txt.1,license.txt,org.apache.hadoop.fs.FileSystem,BCKEY.DSA,BCKEY.SF,ASL2.0,javax.servlet.ServletContainerInitializer,about.html

Bugs closed: 332

Reviewed at https://rbcommons.com/s/twitter/r/656/
Fix depmap to be able to see past a Dependencies target.  We use dependencies() liberally to create short aliases users can use to build common targets.

Testing Done:
Added some unit tests to test_depmap.py

Bugs closed: 242, 336

Reviewed at https://rbcommons.com/s/twitter/r/661/
Simplify python_requirements UI.

In order to simplify the python_requirements interface this change
consolidates BUILD file helper functions into a single macro interface
that allows for either macro types or macro functions.  Both get a
MacroContext injected that exposes controlled bits of the BUILD file
parse context for the macros to generate targets, objects and paths.

In the course of consolidating util types, the BuildFileParser is refactored
to extract the global plugin BuildConfiguration from the parser itself and
firm up the notion of BuildFileAliases.

As fallout many tests are adjusted to the new apis.

Testing Done:
$ ./build-support/bin/ci.sh

travis-ci went green too: https://travis-ci.org/pantsbuild/pants/builds/28304477

Bugs closed: 191, 270

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