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/