use only one transaction controller instance in our test suite
Refactoring removeService() & removeRegistry() from ServiceContext to ManagementContext.
Child services are automatically cleared when parent is gone thus user don't
need to deal with child services removal. On the other hand top level services
can be removed only by TransactionController owner who registered them.
adding security check for creating transaction controller
introducing TransactionController.owns(Transaction) method
TransactionController.validateTransaction() throws SecurityException instead of IllegalArgumentException