Change Service interface, so that now we have one start method for each trait (executeStart, validateStart, commitStart and rollbackStart), and do the same for stop (executeStop, validateStop, commitStop, and rollbackStop).

Update tests accordingly. RollbackServiceStateTestCase is marked with @Ignore as it presents broken tests and is under review.
Commit and rollback state change only a single time, and only for whichever state change is going to be committed.