Add definition of ResourceWarning if not present.

Seems that python2 doesn't include ResourceWarning whereas python3 does.
In order to make the code a touch more portable, we're adding that
definition.

Also, this would have been caught if we had already been using travis's
fast fail option to stop as soon as we get a failure.  The flake8 error
indicating this problem would have been more prominent.

I'm getting some weird test output from nose when I run with python2 but
hoping that travis can tell me if it's actually a concern or not.
Add builtins check for ResourceWarning.

Another python2 vs python3 item meets the dust.  Seems that __builtin__
changed names from 2 to 3 and we need to use that in conjunction with
the check for ResourceWarning to properly support both languages.

Also added in this commit is a more robust treatment of preparation in
the travis configuration.
Move tests out of packages into standard modules.

There aren't enough tests to warrant an entire package for each
component.
Refactor test suite.

The test suite had a few functional tests polluting the unit tests.
This new structure has factored them out into a functional portion.  It
also updates the fixtures to be a little easier to write.   The rest of
the changes are mostly aesthetic improvements.
Use python2 compatible unsetenv.