Move service disable/enable code to tasks, thus making enable/disable revertible operations
Make Registration.removal revertible.
At ServiceControllerImpl.reinstall: reset dependents for all dependencies.
Check that no intermediate states are being set to ServiceControllerImpl.state by writeUnlocked
Remove TransactionalObject and snapshots. Also, adapt lock to work correctly without snapshots, by adding lockSynchronously