Refactor TransactionalService, add tests

Change-Id: I7d4a3e3fb31b9af2fc96bed83154d20f28c96fa4
Reviewed-on: https://pirx.atteo.com/gerrit/481
Tested-by: Mr. Jenkins
Reviewed-by: Tomek Piotrowski <tomek.piotrowski@atteo.com>
Merge remote-tracking branch 'official/master'