Splits coverage testing from other tests

This also uses testtools instead of unittest2. unittest2 only works for python 2 and causes the dependencies to be different between py2 and py3.