Simplify running tests

- A single command `python setup.py test` will now install test
  dependencies, make an in-place build and run the tests.
- The setup script now requires Setuptools. A message will be printed
  if it is not found.
Fix setup.py test and add tox.ini

- For some reason, 'pytest-cache' isn't found by setup.py if not
  specified explicitly in 'tests_require'
- Add tox.ini so tests can be run using tox if desired
- Update test to not be dependent on serialization