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/
Improve backend plugin ergonomics.

This adds support for omitting a backend entrypoint where
no backend plugin is provided and also improves import
errors by wrapping and giving the full module path that was
not found.

Test coverage is also added.

Testing Done:
$ PANTS_DEV=1 ./pants goal test tests/python/pants_test/base:all

Bugs closed: 666

Reviewed at https://rbcommons.com/s/twitter/r/666/
I don't have much idea (hehehe) what I'm doing, but it is working more than it was before.

Idea files are now actually generated and IntelliJ is opened. Codegen also appears to work now, after I moved some code out of ide_gen's __init__ and into its execute(), so that the code actuall gets generated before its called for. External jars work now. I've been testing it out on the jaxb examples and tests.

The code also currently has a mess of print statmements and commented out debugger invocations, as I've been trying to decipher how the old system worked and how the new system is supposed to work.

Patched in John's fixes involving jar publishing in the round engine.
Fixed proto resolution ordering and extraneous warning messages in code_gen.