At the moment a typical upgrade/downgrade test consists of:
* table creation
* data insertion
* a selection of data
This end-to-end actions are now called a test set
For a given configuration of a ring with capabilities a test set may have
to terminate after the table creation stage, or the data insertion one
The purpose of this refactoring is to:
* make it possible to have tests that implment as little or as much
of a full test set as required
* make the test set exendable for other tests like deletion/list keys
In addition the upgrade/downgrade runner has been seperated out into a
part file.
The purpose of this is to make it explicit to the writer of a new test
exactly what they have to do to write a successful up/down test