Refactor AstropyTest to make it easier to subclass.

Split out most of run() into different methods so that you can
override the calling signature without rewriting all the bolierplate code.
Fix call order.
Fixes to make the test work.
re-add inplace=True but import Command from setuptools.
rename construct_testing_command to generate_test_command.
Merge pull request #39 from Cadair/AstropyTest_refactor

Refactor AstropyTest to make it easier to subclass.