Refactor `sync_with_transaction_state`
Refactor `sync_with_transaction_state`

All transaction states (:committed, :fully_committed, :rolledback,
:fully_rolledback) are mutually exclusive.
And also, `force_clear_transaction_record_state` should clear
`@transaction_state` as well.

lcreid/rails,Stellenticket/rails,Erol/rails,repinel/rails,yawboakye/rails,joonyou/rails,esparta/rails,mechanicles/rails,Vasfed/rails,arunagw/rails,iainbeeston/rails,schuetzm/rails,mechanicles/rails,rails/rails,vipulnsward/rails,yhirano55/rails,palkan/rails,vipulnsward/rails,eileencodes/rails,palkan/rails,MSP-Greg/rails,bogdanvlviv/rails,betesh/rails,kddeisz/rails,Envek/rails,tgxworld/rails,flanger001/rails,repinel/rails,kmcphillips/rails,repinel/rails,starknx/rails,Stellenticket/rails,yhirano55/rails,notapatch/rails,schuetzm/rails,kmcphillips/rails,jeremy/rails,jeremy/rails,kmcphillips/rails,BlakeWilliams/rails,shioyama/rails,yhirano55/rails,vipulnsward/rails,yahonda/rails,bogdanvlviv/rails,EmmaB/rails-1,joonyou/rails,rafaelfranca/omg-rails,betesh/rails,rails/rails,MSP-Greg/rails,flanger001/rails,Edouard-chin/rails,yhirano55/rails,shioyama/rails,vipulnsward/rails,prathamesh-sonpatki/rails,palkan/rails,Vasfed/rails,Envek/rails,eileencodes/rails,tjschuck/rails,yawboakye/rails,Vasfed/rails,eileencodes/rails,Envek/rails,esparta/rails,Stellenticket/rails,gauravtiwari/rails,notapatch/rails,arunagw/rails,tjschuck/rails,prathamesh-sonpatki/rails,yawboakye/rails,iainbeeston/rails,Edouard-chin/rails,jeremy/rails,betesh/rails,rails/rails,georgeclaghorn/rails,mechanicles/rails,yahonda/rails,tgxworld/rails,Edouard-chin/rails,joonyou/rails,fabianoleittes/rails,tjschuck/rails,joonyou/rails,Erol/rails,esparta/rails,kmcphillips/rails,notapatch/rails,yahonda/rails,BlakeWilliams/rails,MSP-Greg/rails,yahonda/rails,yalab/rails,arunagw/rails,fabianoleittes/rails,shioyama/rails,esparta/rails,Erol/rails,yalab/rails,kddeisz/rails,lcreid/rails,betesh/rails,tjschuck/rails,mechanicles/rails,gauravtiwari/rails,gauravtiwari/rails,eileencodes/rails,kddeisz/rails,Edouard-chin/rails,bogdanvlviv/rails,rafaelfranca/omg-rails,rafaelfranca/omg-rails,shioyama/rails,prathamesh-sonpatki/rails,georgeclaghorn/rails,Erol/rails,yawboakye/rails,BlakeWilliams/rails,tgxworld/rails,fabianoleittes/rails,iainbeeston/rails,EmmaB/rails-1,fabianoleittes/rails,bogdanvlviv/rails,notapatch/rails,Envek/rails,kddeisz/rails,georgeclaghorn/rails,rails/rails,yalab/rails,iainbeeston/rails,palkan/rails,MSP-Greg/rails,lcreid/rails,repinel/rails,Vasfed/rails,yalab/rails,arunagw/rails,starknx/rails,georgeclaghorn/rails,jeremy/rails,EmmaB/rails-1,BlakeWilliams/rails,flanger001/rails,tgxworld/rails,Stellenticket/rails,starknx/rails,schuetzm/rails,schuetzm/rails,lcreid/rails,flanger001/rails,prathamesh-sonpatki/rails