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.
Merge pull request #1246 from heewa/cleanup_subprocess_in_tests

Cleanup Subprocess when tearing down AsyncTestCase