Cleanup Subprocess when tearing down AsyncTestCase

Since an ioloop is created and destroyed between a test's `setUp` and
`tearDown`, and Subprocess holds on to an ioloop until `uninitialize`,
this allows the next test case to use Subprocess correctly.