Various cleanup and compatibility fixes for python 3k.

- Switch to nose for the test runner.
   Personal preference really; it meshes nicely with unittest and
   comes built-in with a test runner for setuptools.

- All tests pass under both python 2.x and 3.x

- Remove requirements files and made use of extras_requires instead

- pip must install packages which leads to the test runner must
   be ran explicitly (`nosetests`). This is only until the two
   packages that have python3 support in an unreleased branch
   put out official releases.