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/