Newer versions of tox change dirs

It's necessary to indicate that the requirements files are in toxinidir.
Add py.test exclusions

py.test by default recurses into all directories in the tree, even
though this is not how the python unittest discover protocol works. That
means that if something drops an egg in the source dir (like pbr)
because it's in setup_requires and that's what easy_install does, and
further if that thing actually ships its unittests because it's
friendly, py.test will incorrectly think that it needs to import the
files inside of the egg, which it can't do because it doesn't have the
dependent libs.

To fix, put in recursion exclusions for the .tox dir (which could also
exhibit this problem) and any directory ending in .egg.
Be friendly to folks running flake8 directly

flake8 can be run simply outside of the virtualenv. Put in default
settings so that if it is, it doesn't attempt to judge erroneous things.
Also, just because it can be annoying, ignore any OpenStack hacking
rules that might be installed as flake8 plugins globally.
Preemptively install pbr on travis

Rather than having setup_requires install it, go ahead and install pbr
actively first, ensuring that pip and not easy_install gets the job
done.