TST: Use pytest
- [x] closes https://github.com/pydata/pandas/issues/13097
- [x] tests added / passed
- [x] passes `git diff upstream/master | flake8 --diff`
- [x] whatsnew entry

Just a WIP for now, will need to iterate on the CI stuff to ensure that's all good.

What can I provide to make this easier to review? Refactoring tests is scary.
I'll give verbose outputs of nose on master and pytest on this branch.
junit.xml output too. Anything else?

Here are some notes I took along the way
### Kinds of Changes
- Nosetests Generators to fixtures

See TestPickle, TestMsgPack and [this](http://stackoverflow.com/questions/6689537/nose-test-generators-inside-class) SO post. We switched to using parametrized fixtures (yay) and dependency injection instead of setUp + a for loop inside the test.
- Different Discover Rules

See the sql tests. `py.test` discovers `_Test*` class (if they inherit from `TestCase`?), while unittest does not.
Solution: move TestCase inheritance down a level
- Assert Rewriting

See e.g. pandas/src/testing.py
- solution: rewrite `assert cond, msg` as `if not cond; raise AssertionError(msg)`
- looking into just excluding these files... They aren't actual tests, just test helpers.
- CI work:
  - updating nose to pytest
